当对象具有作为数组的值时_.findwhere不起作用

时间:2017-05-31 08:04:26

标签: javascript underscore.js

_。findwhere 总是让我未定义,当我用它来搜索具有数值作为数组的对象时。

var nameArray = [{name:'firstName',value : ['Amruta','Swapnil']},{name:'LastName',value : ['Pawar','shaikh']}]

var element = _.findWhere(nameArray,{value:'Amruta'});

console.log("element is " + element);

我将元素的价值视为不朽的而不是价值......

1 个答案:

答案 0 :(得分:2)

findWhere用于根据属性查找完全匹配的项目。在您的情况下,您正在尝试查找value属性包含特定文本的项目。您可以通过将谓词作为第二个参数传递给find来实现:



var nameArray = [{name:'firstName',value : ['Amruta','Swapnil']},{name:'LastName',value : ['Pawar','shaikh']}]

var element = _.find(nameArray,function(x){
    return x.value.includes("Amruta")
});

console.log(element);

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;
&#13;
&#13;