javascript - 如何从 JS 对象创建新的 JS 数组
问题描述
我想从一个对象创建新的 JS 数组。我解释了我的情况如下。
对象1
obj1 = {
MMJ_KKL: {CODE: "SSW", YARN: 4500, WARN: "NBVC"},
KKN_AAS: {CODE: "NNH", YARN: 1540, WARN: "MHYT"},
LLK_PPO: {CODE: "KKI", YARN: 2312, WARN: "POIU"}
}
对象2
obj2 = {
MMJ_KKL:{CODE: "SSW", YARN: 2300, WARN: "NBVC"},
KKN_AAS:{CODE: "NNH", YARN: 3329, WARN: "MHYT"},
LLK_PPO:{CODE: "KKI", YARN: 2312, WARN: "POIU"},
RRE_WED:{CODE: "QQA", YARN: 4430, WARN: "IUYT"}
}
现在大家可以看到 obj1 和 obj2 之间发生了变化。他们是,
- obj1.MMJ_KKL.YARN 和 obj2.MMJ_KKL.YARN
- obj1.KKN_AAS.YARN 和 obj2.KKN_AAS.YARN 现在它需要创建新数组并将更改的值放入其中。
******注意:我们不能在这里考虑 obj2 中的 RRE_WED。因为这样的值不包含在 obj1 中。
试过的代码:
Object.keys(obj2).forEach((item) =>
const result = obj1.filter((item) => arr1[item.code] && !(obj2[item.product_code].YARN === item.YARN && obj2[item.WARN].note === item.WARN));
);
预期输出:
[
{
"CODE": "SSW",
"YARN": "2300",
"WARN": "NBVC"
},
{
"CODE": "NNH",
"YARN": "3329",
"WARN": "MHYT"
}
]
请帮我解决这个问题。
解决方案
我不确定我是否了解您要使用的所有标准,但这会给您预期的输出。
Object.keys(obj1)
.filter(key => Boolean(obj2[key]))
.filter(key => obj1[key].YARN !== obj2[key].YARN)
.map(key => obj2[key]);
推荐阅读
- python - 如何编写包含标签的xpath div类和
标签 - json - 在 PL/SQL 中使用索引访问 JSON 元素
- javascript - 如何修复 不要直接改变状态。将 setState() 与数组一起使用?
- google-data-studio - 数据洞察上的过滤器
- android - 在 Play 商店中,“您的设备与此版本不兼容” - 可能是由于相机
- javafx - 如何从 DoubleBinding 创建 BigDecimal
- excel - 如何在演示文稿中循环播放幻灯片,将新的 Excel 范围粘贴到每张幻灯片的表格中
- c# - 如何在按下 F4 时禁用 Wpf 组合框下拉菜单?
- vba - 在 vba 中以 0.1 的增量增加 ComboBox
- git - 用远程覆盖本地存储库