如何在javascript中搜索数组的所有对象?

时间:2014-06-13 03:56:00

标签: javascript

我正在使用搜索(str,array),它只搜索数组中的一个字段。

我的数组看起来像:

array[i].name
array[i].binary

此处仅使用名称字段搜索字符串。

3 个答案:

答案 0 :(得分:1)

听起来你有一个对象数组。如果要迭代数组中每个对象的属性,可以使用for..in循环:

var array = [{property1:'p1',property2:'p2',property3:'p3'},{prop1:'pro1',prop3:'pro3'},{test:{},name:''}];
var str = 'test';
for (var i = 0; i < array.length; i++) {
    for (var property in array[i]) {
        if (array[i].hasOwnProperty(property)) {
            /* Your search code here */

            /* Search the property name */
            search(str, property);
            /* Search the values of each property */
            search(str, array[i][property]);
        }
    }
}

function search(s, p) {
    console.log(p);
}

我编辑了代码,以便在值上添加使用search()的{​​{3}}。

答案 1 :(得分:0)

怎么样

arr.filter(function(item){ 
   if (item.hasOwnProperty("propName")) { 
        return item["propName"] === 'demo 01'; //or item.propName === 'demo 01'
   } 
   return false;   
 });

答案 2 :(得分:0)

查看Underscore.js库@ http://underscorejs.org;它有很多很棒的实用工具,用于从数组中切割和切割数据。

在这种情况下,您可以使用_.findWhere函数。例如:

var results = _.findWhere(array, {name: "John"});

返回所有array [i]项目,其中array [x] .name ===&#34; John&#34;。