如何将findIndex与字符串和对象一起使用

时间:2016-10-20 18:19:54

标签: javascript jquery arrays

当我有一个字符串或对象数组时,如何使用findIndex。以上两个代码都返回-1

console.log(['kk', 'll', 'mm', 'pp'].findIndex(function(x) { x == 'mm'}))
console.log([{name: 'kk'},{name: 'vv'},{name: 'mm'},{name: 'ok'}].findIndex(function(x) { x.name == 'mm'}))

jsfiddle

1 个答案:

答案 0 :(得分:5)

您必须返回条件的结果,以便Angular2 router知道是否找到了值

['kk', 'll', 'mm', 'pp'].findIndex(function(x) { return x == 'mm'})

应该注意的是,像这样使用,只有一个字符串数组,indexOf可以正常工作

['kk', 'll', 'mm', 'pp'].indexOf('mm')

但对于一个对象数组,如第二个示例所示,进行回调非常有用

[
    {name: 'kk'},
    {name: 'vv'},
    {name: 'mm'},
    {name: 'ok'}
].findIndex(function(x) { 
    return x.name == 'mm';
});