js如何查找name为‘小红’的下标?

数据是这样的:

var obj = [
    {
        id:1,
        name:"小明"
    },
    {
        id:2,
        name:"小红"
    },
    {
        id:3,
        name:"小雷"
    }
];

我现在想知道name为‘小红’的下标是多少

//数组,要找的字段,要找的内容
function findIndex(arr,key,word){
    arr.map((o,n)=>{
        if(o[key] == word){
            return n;
        }
    })
}
var t = findIndex(obj,'name','小红');
console.log(t); //underfine

回答:

function findIndex(arr,key,word){
  return arr.find(item => {
    return item.name === word
  })
}
var t = findIndex(obj,'name','小红');
console.log(t); //{id: 2, name: "小红"}

回答:

const findIndex = (arr, key, word) => arr.findIndex(obj => obj[key] === word);

回答:

函数没有返回值所以是undefined。

回答:

map中的return是返回到map数组当中。即题中arr.map跑完时被赋值为[undedined,1,undefined]。所以你的findindex返回的是一个空值。你可以在arr.map之前加一个return就可以看到返回值值了。
可以改成这个样子,就可以了。

function findIndex(arr,key,word){
    arr.map((o,n)=>{
        if(o[key] == word){
            console.log(n);
        }
    });
}

回答:

clipboard.png

回答:

function findIndex(arr,key,word){
    return arr.findIndex(item=>item[key]===word)
}

参考:http://es6.ruanyifeng.com/#do…

回答:

你的findIndex没有返回值啊,兄dei
你在map函数外定义一个变量,
再在map里面赋值。
最后map函数外return

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注