首页 > 解决方案 > js循环问题

问题描述

我需要帮助,我是 js 新手,必须完成这项任务。我很困惑我做错了什么……

var products = [
  product = {
    id: 1,
    name: "green",
  },
  product = {
    id: 2,
    name: "red",
  },
  product = {
    id: 3,
    name: "black",
  },
];

var myWishlist = [
  wishlist = {
    id: 1,
    productId: 4,
  },
  wishlist = {
    id: 2,
    productId: 2,
  },
  wishlist = {
    id: 3,
    productId: 2,
  },
];

for (var i = 0; i < myWishlist.length; ++i) {
  var currentWishlistProductId = myWishlist[i].productId;
  for (var j = 0; j < products.length; ++j) {
    var currentProductId = products[i].id;
    if (currentWishlistProductId == currentProductId) {
      console.log(
        "Whishlist id: " +
        myWishlist[i].id +
        "Product name: " +
        products[i].name,
      );
    }
  }
}

现在输出是:Whishlist id:2 产品名称:red

输出应如下所示:

Whishlist id: 2 产品名称: red

Whishlist id: 3 产品名称: red

标签: javascriptarraysjson

解决方案


试试下面的代码:

var products = [{ id: 1, name: "green" }, { id: 2, name: "red" }, { id: 3, name: "black" }],
    myWishlist = [{ id: 1, productId: 4 }, { id: 2, productId: 2 }, { id: 3, productId: 2 }],
    res = products.map(function (item) {
          myWishlist.map(function (wishItem) {
              if(item.id == wishItem.productId){
                   console.log("Whishlist id: "+wishItem.id+" Product name: "+item.name)
              }
          });
    });
console.log(res)    
    


推荐阅读