gpt4 book ai didi

javascript - 尝试遍历包含对象数组的数组,以匹配数据

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

我正在尝试编写循环遍历数组“productsArray”并将其与我的 productPropertyArray 进行匹配以提取匹配信息的代码。

但是 productsArray 是数组中的一个数组,其中包含一个带有数据的对象。我的问题是如何遍历两个数组然后返回匹配的数据。

当前函数:

    var pList = productsArray
if (productPropertyArray.length === 0 || productsArray.length === 0) return [];
for (var i = 0; i < pList.length; i++) {
for (var j = 0; j < pList[i].length; j++) {
if (pList[i][j] === productPropertyArray) {
return productPropertyArray;
} else {
continue;
}
}

}
return [];
};

pList 示例:

productsArray = [
[{"sku" : "131674"},
{"sku" : "84172"}],
[{"productID" : "1234"}
,{"productID" : "12345"}],
[{"test": 1},{"test": 1}],
[{"test": 1},{"sellAlone": false,"test": 1}],
[{"test": 1}],
[{"sellAlone": false,"test": 1}]
];

productPropertyArray 的示例:(它的一个参数被以下替换)

productSKUArray = [
"00544MF24F575",
"131674",
"84172"
];

productPropertyArray 只是函数中的一个参数,由 productSKUArray 代替。设置如下所示:function(productProperty, productPropertyArray, productsArray) {

productProperty 只是一个包含sku或productID的字符串 任何想法表示赞赏。谢谢。

最佳答案

检查一下:

http://jsfiddle.net/v9d7bjms/2/

function find() {
var productsArray = [
[{"sku" : "131674"},
{"sku" : "84172"}],
[{"productID" : "1234"}
,{"productID" : "12345"}],
[{"test": 1},{"test": 1}],
[{"test": 1},{"sellAlone": false,"test": 1}],
[{"test": "00544MF24F575"}],
[{"sellAlone": false,"test": 1}]
],
pList = productsArray,
productSKUArray = [
"00544MF24F575",
"131674",
"84172"
];

// All arrays matching your productsSKUArray
var findings = productsArray.filter(function (productProperty) {
// .some returns true after finding first matching element (and breaks the loop)
return productProperty.some(function (obj) {
var keys = Object.keys(obj);
// We need to get all the "values" from object so we interate over
// the keys and check if any value matches something from productSKUArray
return keys.some(function (key) {
// Check if value exists in productsSKUArray
return productSKUArray.indexOf(obj[key]) > -1;
});
});
});

return findings;
}

console.log(find());

.filter 将返回所有包含对象的数组,这些对象的值来自 productSKUArray

参见 Array.prototype.filter , Array.prototype.someArray.prototype.indexOf供方法引用。

关于javascript - 尝试遍历包含对象数组的数组,以匹配数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185135/

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