我试图仅提取对象数组中的产品,其产品 ID 存在于 masterAccessories 列表数组中,该数组来自具有数组形式的 related_products 列表的特定产品。
JSON 示例:
{"product":
{
"id": 3,
"product_name": "Product Name",
"sku": "sku_ID",
"description": "description",
"product_link": "link",
"cat_id": "cat-ID",
"cat_name": "Cat Name",
"related_products": [5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54]
}
},
{"product":
{
"id": 4,
"product_name": "product_name",
"sku": "sku_id",
"description": "description",
"product_link": "link",
"cat_id": "cat-tc",
"cat_name": "Cat Name",
"related_products": []
}
},
我基本上试图找到相关产品数组中存在的 id 的所有产品。
相关产品数组:
[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54]
到目前为止我的尝试没有成功:
myPromise.then(function (result) {
let products = JSON.parse(result);
return products;
}, function (result) {
console.error(result);
}).then(function(products){
let productArray = products[0].products;
masterProduct += -1;
let accesoriesList = Object.values(productArray)[masterProduct];
let masterAccessories = accesoriesList.product.related_products;
console.log('Master: ',masterAccessories);
var newArray = [];
for(let i=0;i<productArray.length;i++){
if(masterAccessories.indexOf(productArray[i].product.id) === -1){
newArray.push(productArray[i]);
}
}
console.log('NewArray: ',newArray);
return accesoriesList;
})//just another then() that returns true
如果有帮助的话,这是从控制台的productArray变量返回的对象之一:
1:product:{id: 2, product_name: "Product Name", sku: "SkuID", description: "Description", product_link: "link", …} __proto__:Object
任何帮助将不胜感激,谢谢。
最佳答案
使用 jQuery:
var products = json;//<your product json array deserialized>;
var ids = [5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54];
var productsContainedArray = $.grep(products, function (prod) {
return ids.indexOf(prod.product.id) != -1;
});
关于javascript - 通过使用 javascript 比较另一个数组中是否存在 ID 来创建一个新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240984/