素材牛VIP会员
js中,查找list中object的位置,该如何实现吗?
 34***86  分类:JavaScript  人气:839  回帖:6  发布于6年前 收藏

有这么一个数组

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

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

讨论这个帖子(6)垃圾回帖将一律封号处理……

Lv6 码匠
这***2 学生 6年前#1

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

test.map(item => JSON.stringify(item)).indexOf(JSON.stringify({title: 'b'}))
// 1
Lv6 码匠
lo***yo UI设计师 6年前#2

function(a){

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

}

Lv6 码匠
问***m Linux系统工程师 6年前#3
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方法
}
Lv3 码奴
销***表 PHP开发工程师 6年前#4
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
Lv6 码匠
on***de JAVA开发工程师 6年前#5

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

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


Lv2 入门
麦***气 JAVA开发工程师 6年前#6

https://lodash.com/里 的_.findIndex()就是这样用的 返回下标

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取