【发布时间】:2021-07-23 10:05:04
【问题描述】:
我有一个对象
const items = {
"123": {
"key": 123,
"name": "one name",
},
"456": {
"key": 456,
"name": "two name",
},
"789": {
"key": 789,
"name": "three name",
},
};
需要从下面的数组中过滤这个,数组索引为object.key
const myFilter = [123,789];
我正在尝试的代码如下,但它返回数组 inedx 为 0,1,2... 但我需要索引为 object.key。
let selectedItems = myFilter.map((key) => {
return items[key];
});
当前输出:
[0:{
key: 123,
name: "one name"
}, 1: {
key: 789,
name: "three name"
}]
预期输出
[123:{
key: 123,
name: "one name"
}, 789: {
key: 789,
name: "three name"
}]
jsfiddle - https://jsfiddle.net/kb374exh/2/
【问题讨论】:
-
您的预期输出不是有效的数组,甚至不是一个对象。
-
是的,而且您的
items变量是对象对象而不是对象数组。所以,你不能为此使用数组方法 -
另外,为什么
123和789而不是456? -
@ikiK - 我尝试编辑输出格式。基本上我需要一个数组索引作为对象的关键属性,而不是 0,1,2....,对不起,如果它令人困惑
标签: javascript arrays ecmascript-6 filter reducers