var a=[{b:'张三'},{b:'李四'}]; 在不使用循环的情况下,如何得到数组中,b的值等于张三的那个对象

var a=[{b:'张三',c:666},{b:'李四',c:777}];

在不使用循环的情况下,如何得到数组中,b的值等于张三的那个对象

前端几年一直苦恼这个问题。。。求高手指点!!!

这种可以不?

var lists = [
    {b: '张三', c: 666},
    {b: '李四', c: 777}
];
var item = lists.find(item => {
    return item.b == '张三';
});
console.log(item)

如果数组中没有相同的对象还差不多,如果有相同的对象,只能返回第一个。

console.log(a[0][''b]);

var obj = a.find(v=>v.b=='张三'); 只返回第一个符合条件的元素,并且ie不支持


var arr = a.filter(function(v){return v.b=='张三';});可以返回多个符合条件的元素,并且ie9+支持

不使用循环指的是不使用for、while循环吗

不使用循环,相当于你不让程序挨个看一遍,还要让程序说出每个值,为难程序了