在数组上应用“过滤器”将返回空结果

时间:2019-09-18 15:25:56

标签: arrays typescript

我有一个名为“ myBelongings”的数组。我需要根据特定条件过滤数组,该条件是带有标签“ Notebook”的项目。这是我的代码:

myBelongings = [
0: {value: 0, label: "Pen"}
1: {value: 1, label: "Handbag"}
2: {value: 2, label: "Notebook"}
2: {value: 3, label: "Laptop"}
];

let result  = myBelongings .filter((item)=>{ item.value== 'Notebook'});

但是结果却是一个空数组。您能帮我找到解决办法吗?

2 个答案:

答案 0 :(得分:2)

您的变量myBelongings不是有效的数组。假设将数组结构更正为-

const myBelongings = [
{value: 0, label: "Pen"},
{value: 1, label: "Handbag"},
{value: 2, label: "Notebook"},
{value: 3, label: "Laptop"}
];

要么省略{},要么在函数调用中添加return,如果要保留curl

let result  = myBelongings .filter((item)=> item.label == 'Notebook');

OR

let result  = myBelongings .filter((item)=>{ return item.label == 'Notebook'});

选中this JSBin here

答案 1 :(得分:1)

您只需将.value替换为.label,我们也需要删除花括号。

let result  = myBelongings .filter((item)=> item.value == 'Notebook');

let result  = myBelongings .filter((item)=> { return item.value == 'Notebook' });