javascript - 如何将一个数组的值分配给另一个数组?
问题描述
我有两个名为actutalpricesarray和modfiedpricesarray的数组。
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}
]
解决方案
嘿,这是你可以做的。我使用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))
推荐阅读
- grails - 无法使用 Java 11 运行 Grails 4.0.1 cli - 在堆栈跟踪中出现空指针错误
- c# - 双斜杠在字符串 C# 中无法正常工作
- angular - app.module.ts 中声明的 Angular 子 html 引用组件
- codeblocks - 我需要在 Code::Blocks 中更改工作区的颜色
- c# - 有没有办法在 c# 中将参数与访问器一起使用
- python - 如何正确使用 Keras 添加层?
- go - 从其他功能使用 mongodb 连接
- sql - SQL:从两列lat,long_更新新列作为几何点
- arrays - lua :将值存储在字符串数组中并通过调用随机索引打印值
- java - 如何使我的方法更加面向对象?