javascript - 如何对字符串和对象使用 findIndex

标签 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

最佳答案

你必须返回条件的结果所以Array.findIndex知道是否找到该值

['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';
});

关于javascript - 如何对字符串和对象使用 findIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40161744/

相关文章:

javascript - video-js endcard插件为什么要给播放器添加原生控件?

javascript - 在angularjs中显示数组中的x对象

javascript - 带子边距的 Div 高度

javascript - jQuery 组合toggle()、show() 和hide()

使用 jquery 切换事件的 jquery 切换投票?

javascript - JQuery - $(#).remove() 与 document.getelementbyid().remove

Java ArrayList - 不设置现有元素

javascript - 为什么 goog.crypt.base64.decodeStringToByteArray(string) 在这里返回无效的字节数组?

javascript - 为什么背景色为 :white; doesn't work?

javascript - Angularjs - ng-repeat 不适用于单个数组?