我正在使用搜索(str,array),它只搜索数组中的一个字段。
我的数组看起来像:
array[i].name
array[i].binary
此处仅使用名称字段搜索字符串。
答案 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;。