js中,查找list中object的位置,该如何实现吗?

有这么一个数组

const test = [
    {title: 'a'},
    {title:'b'},
    {title:'c'},
    {title:'d'},
    {title:'e'},
]

有没有快捷的方式,可以快速查找其中某项的位置,
比如 someFunction(test, {title:'d'}) -> 返回 3

阅读 5.8k
6 个回答

function(a){

test.forEach((v,i)=>{
    if(v.title==a){
        return i
    }
})

}

三种函数封装 /// 自己写了一下

function isHasElementOne(arr,value){ 
    for(var i = 0,vlen = arr.length; i < vlen; i++){ 
        if(arr[i] == value){ 
        return i; 
        } 
    } 
    return -1; 
}


clipboard.png

简单对象应该可以这样写:

test.map(item => JSON.stringify(item)).indexOf(JSON.stringify({title: 'b'}))
// 1
function someFunction(arr, option, condition) {
    //对象是否包含另一个对象
    function contain(source, target, condition) {//condition 全部包含或只包含一部分
        return Object.keys(target)[condition?"every":"some"](v=>target[v] == source[v]);//通过数组every和some方法
    }
    return arr.findIndex(v=>contain(v,option,condition));//数组的findIndex方法
}
const test = [
    {title: 'a'},
    {title: 'b'},
    {title: 'c'},
    {title: 'd'},
    {title: 'e'}
]

function someFunction(test, obj) {
    const { title } = obj;
    for(let i = 0; i < test.length; i++){ 
        if(test[i].title == title) return i; 
    }
}

someFunction(test, {title:'d'});

// 3
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题