第一个阵列:
var products_cart = [1, 2, 2]; (these are the products_id's)
第二阵列:
var cart_details =
[{
product_id: 1,
product_name: 'product love',
category_name: 'love'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
}]
我想循环遍历数组products_cart的元素,并使用products_cart中的product_id来从cart_details中呈现细节(我猜想循环遍历它们),这怎么可能?
编辑:
我认为你们有些人误解了我,我基本上希望这样做是这样的:
[{
product_id: 1,
product_name: 'product love',
category_name: 'love'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
}
]
我的错误,我不够清楚。
答案 0 :(得分:0)
我建议您使用 .forEach()
循环products_cart
,然后使用 Object.keys()
检查cart_details
的键,并循环遍历它们。然后你可以简单地检查两者是否匹配。
然后,您拥有product_id
中products_cart
所有对象的集合,并且可以随意使用这些对象。
以下示例只是将对象记录回给您:
var products_cart = [1, 2, 2];
var cart_details = [{
product_id: 1,
product_name: 'product love',
category_name: 'love'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
},
{
product_id: 3,
product_name: 'NOT IN ARRAY products_cart',
category_name: 'SHOULD NOT BE SHOWN'
}
]
products_cart.forEach(function(product) {
Object.keys(cart_details).forEach(function(key) {
if (product === cart_details[key].product_id) {
console.log(cart_details[key]);
}
});
});

我还提供了第三个产品,以证明只有products_cart
中的产品才会显示在条件中。
希望这有帮助! :)
答案 1 :(得分:0)
var products_cart = [1, 2, 2];
var cart_details = [{
product_id: 1,
product_name: 'product love',
category_name: 'love'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
}];
products_cart.forEach(function(id){
cart_details.forEach(function(detail){
if(detail.product_id === id){
console.log(detail);
}
});
});

答案 2 :(得分:0)
您可以在循环访问ids数组时使用find():
let products = [];
products_cart.forEach(id => {
let product = cart_details.find(detail => detail.product_id === id);
if (product) {
products.push(product);
}
});
答案 3 :(得分:0)
你需要清单吗?我认为使用json而不是list。
var products_cart = [1, 2, 2];
var cart_details =[
{
product_id: 1,
product_name: 'product love',
category_name: 'love'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
}];
var new_cart_details = {};
// changed list to josn
cart_details.map( item => {
new_cart_details[item.product_id] = {
product_name: item.product_name,
category_name: item.category_name
}
});
products_cart.map( item => {
console.log(new_cart_details[item])
});
答案 4 :(得分:0)
假设products_cart的值是产品ID值,那么您可以尝试以下操作:
var products_cart = [1, 2, 2];
var cart_details = [{
product_id: 1,
product_name: 'product love',
category_name: 'love'
},
{
product_id: 2,
product_name: 'product birthday love',
category_name: 'birthday'
}
]
for (var i=0, max=products_cart.length; i < max; i++) {
for (var j=0, maxi = cart_details.length; j < maxi; j++) {
if ( products_cart[i] == cart_details[j].product_id) {
console.log( "product id: " + cart_details[j].product_id);
console.log("product name: " + cart_details[j].product_name);
console.log("category name: " + cart_details[j].category_name,"\n\n");
}
}
}