首页 > 解决方案 > 如何将一个数组的值分配给另一个数组?

问题描述

我有两个名为actutalpricesarraymodfiedpricesarray的数组。

var actutalpricesarray =
[
    {
        "name": "apple",
        "price": 100
    },
    {
        "name": "orange",
        "price": 200
    }
]


var modfiedpricesarray = 
[
    {"name":"apple","price":20},
    {"name":"orange","price":30},
    {"name":"strawberry","price":40}
]

我想将价格值modfiedpricesarray分配给actutalpricesarray,以便 modfiedpricesarray 的输出看起来像

[{"name":"apple","price":100},{"name":"orange","price":200},{"name":"strawberry","price":40}]

试过这样

for(var i=0;i<modfiedpricesarray.length;i++)
{
    var fruitnamemodfiedprice = modfiedpricesarray[i].name;
    for(var j=0;j<actutalpricesarray.length;j++)
    {
        var fruitnameactualprice = actutalpricesarray[j];
        if(fruitnamemodfiedprice==fruitnameactualprice)
            modfiedpricesarray[i].price = actutalpricesarray[j].price;
        }
    }
    console.log(JSON.stringify(modfiedpricesarray))
});

https://jsfiddle.net/o2gxgz9r/55230/

modfiedpricesarray 的期望输出应该是

[
    {"name":"apple","price":100},  
    {"name":"orange","price":200},
    {"name":"strawberry","price":40}
]

标签: javascriptjquery

解决方案


嘿,这是你可以做的。我使用findIndex获取所需水果的索引,然后更新价格。也检查我的代码笔

var actutalpricesarray =[
  {
   "name": "apple",
    "price": 100
 },
  {
    "name": "orange",
    "price": 200
  }
]

var modfiedpricesarray = [
  {"name":"apple","price":20},
  {"name":"orange","price":30},
  {"name":"strawberry","price":40}
]

modfiedpricesarray.forEach((item,i) => {
  var fruitnamemodfiedprice = item.name;
  let index = actutalpricesarray.findIndex(x => x.name === fruitnamemodfiedprice);
  if(index !== -1){
    modfiedpricesarray[i].price = actutalpricesarray[index].price
  }
})
console.log(JSON.stringify(modfiedpricesarray))

推荐阅读