[英]Get all object from array of objects having similar value
假設我在數組中有5個這樣的對象:
var myObjects = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 1, b: 6}, {a: 3, b: 8}, {a: 1, b: 9}];
我如何遍歷此myObjects並獲得具有相似值a = 1
對象。 例如。 {a: 1, b: 2},{a: 1, b: 6},{a: 1, b: 9}
?
var result = myObjects.filter(function(e) {
return e.a === 1;
});
MDN為不支持此方法的舊版瀏覽器提供了polyfill 。
如果要基於屬性a
對對象進行分組,則可以使用以下方法:
var result = {};
for (var i = 0, len = myObjects.length; i < len; i++) {
var obj = myObjects[i];
if (result[obj.a] === undefined) {
result[obj.a] = [];
}
result[obj.a].push(obj);
}
console.log(result);
擴展@VisioN的答案:您可以使用工廠函數,該工廠函數本身將返回要按以下條件進行過濾的函數:
function filterAByValue(value) {
return function(item) {
return item.a === value;
};
}
var result = myObjects.filter(filterAByValue(1));
甚至使屬性變量:
function filterPropertyByValue(property, value) {
return function(item) {
return item[property] === value;
};
}
var result = myObjects.filter(filterPropertyByValue("a", 1));
嘗試這個
var index[];
for(i=0;i<obj.lenght;i++)
{
if(obj[i].a==1)
{
index.push(i);
//you even can push obj[i] to some other array and use it
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.