【发布时间】:2021-11-13 21:24:49
【问题描述】:
如果键存在于 JavaScript 中,我想知道如何创建一个新的数组对象。
我有两个数组对象,arr1 和 arr2。在arr2中,如果c的值为真且arr1的key与一个值相等,则将其推送到一个新的数组对象中。如果 arr2 的 key-value 为 true 并且与 arr1 的 key 匹配,则在 JavaScript 中推送到一个新数组。
var arr1 = {
data:[
{id:1, place: "IN", year: "2020", mode: "ON"},
{id:3, place: "TH", year: "2022", mode: "OFF"},
{id:5, place: "AU", year: "2025", mode: "ON"}
]
};
var arr2=[
{a: "place", c: true},
{a: "year", c: true},
{a: "mode", c: false},
]
var finals = [];
var result = arr1.data.map(e=>{
arr2.forEach(i=>{
if(i.c == true && Object.keys(e)){
finals.push(e);
}
})
return finals
})
预期输出:
[
{place: "IN", year: "2020"}
{place: "TH", year: "2022"},
{place: "AU", year: "2025"}
]
【问题讨论】:
-
如果
arr2的第三行的c是假的,为什么你期望AU(第三行)? -
@AzizaKasenova 感谢 fr 的回复,如果不匹配,则应仅删除键,但显示匹配的键,如果键匹配且 c 为真,则应包括
-
if key matched and c true不适用于AU,因为c存在错误,@ved -
您想映射
arr1中的项目数组以仅显示arr2中为真的键? -
@RickardElimää @Aziza Kasenove ,谢谢fr 回复,如果
aarr2 的值与 arr1 和 c 匹配,则推送项目,因为模式匹配但 c 是 false ,所以不推送那个键
标签: javascript arrays loops object