javascript - 如何在javascript中将对象值数组与对象键进行比较和更改
问题描述
我想知道如何在javascript中通过对象值比较和更改数组值
我有一个arrobj
,obj
其中如果 arrobj 值city
和 obj 键相同,则更改 arrobj 中的城市值,
var arrobj =[
{
"id":1, "name": "xyz", "city":"IN",
"id":2, "name": "abc", "city":"CA",
"id":3, "name": "jon", "city":"MY",
"id":4, "name": "om", "city":"CH",
"id":5, "name": "ken", "city":"JP",
}
]
var obj={
"CA": "Canada",
"MY": "Myanmmar",
"IN": "India"
}
Expected Output
[
{
id:1, name: "xyz", city:"India",
id:2, name: "abc", city:"Canada",
id:3, name: "jon", city:"Myanmmar",
}
]
var arr1 = [];
var result = arrobj.map(e=>{
return Object.keys(obj).map(i=>{
if(e.city===i){
arr1.push({
...e,
city:i
})
}
})
})
console.log(arr1)
解决方案
使用Array#map
,您可以迭代arrobj
并更新city
它是否具有以下值obj
:
const
arrobj = [
{ id:1, name: "xyz", city:"IN" },
{ id:2, name: "abc", city:"CA" },
{ id:3, name: "jon", city:"MY" },
{ id:4, name: "om", city:"CH" },
{ id:5, name: "ken", city:"JP" }
],
obj = { "CA": "Canada", "MY": "Myanmmar", "IN": "India" };
const res = arrobj.map(({ city, ...e }) => ({ ...e, city: obj[city] || city }));
console.log(res);
推荐阅读
- swift - 调用中的无关参数标签“with:”
- node.js - quasar SPA build 使用 Node.js 在本地和全局生成空白页面
- dynamic - SAS - 动态创建宏
- python - sqlite嵌套for循环错误
- sql - 如何加入选择顶部
- javascript - 在javascript中使用for循环获取多个提交
- php - 如何在wordpress中停止重定向到首页网址
- docker - 使用 Docker 自动构建的多镜像
- android - 如果相同的数据同时以不同的方式显示,如何触发android视图更新?
- javascript - html5拖放dropzone舞蹈