gpt4 book ai didi

javascript - 根据属性名称对数组中的对象进行分组

转载 作者:行者123 更新时间:2023-11-30 08:32:14 26 4
gpt4 key购买 nike

我有一个包含对象列表的数组:

var myArray = [
{"cartItems": {"paramA1": 25, "paramA2": 35}},
{"cartShippingCost": {"paramB1": 4, "paramB2": 152, "paramB3": 536, "paramB4": 56}},
{"cartSpecialRequirements": {"paramC1": 432}},
{"cartPostage": {"paramD1": 56, "paramD2": 6537}},
{"uid": {"paramE1": 545}},
{"tel": 7778798548}
];

我如何遍历上述内容并将包含 'cart' 和不包含的对象分组?

我知道我需要创建 2 个临时对象,例如

var cartObj;
var nonCartObj;

如果满足条件,则对其中的每一个执行 .push。

尝试过:

for(var i in myArray) { 
if (i == 'cart') {
console.log('cart match found');
}
}

更新:

使用 Object.keys 总是遇到其他情况:

var key = Object.keys(item);

if (key.indexOf("cart") !== -1) {
alert(key + " contains cart");
} else {
alert(key + " doesnt contain cart");
}

最佳答案

您可以使用 Array.prototype.filter 创建一个新数组,其中每个项目都满足某些条件:

var cartItems = myArray.filter(hasCartProperty);
var nonCartItems = myArray.filter(function (x) { return !hasCartProperty(x); });


// Checks to see if any of the object's keys contain the text 'cart'
function hasCartProperty(x) {
return Object.keys(x).some(function (x) {
return x.indexOf('cart') > -1;
});
}

关于javascript - 根据属性名称对数组中的对象进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com