Javascript 按多个键过滤数组
我准备了一些数组过滤功能:Javascript 按多个键过滤数组,javascript,reactjs,Javascript,Reactjs,我准备了一些数组过滤功能: export default function App() { const input = [ {"unix":1, "val_1":"True", "val_2": 5, "val_3": 10}, {"unix":2, "val_1":"True", "val_2":
export default function App() {
const input = [
{"unix":1, "val_1":"True", "val_2": 5, "val_3": 10},
{"unix":2, "val_1":"True", "val_2": 5, "val_3": 10},
{"unix":3, "val_1":"False", "val_2": 3, "val_3": 2},
{"unix":4, "val_1":"True", "val_2": 7, "val_3": 1},
{"unix":5, "val_1":"True", "val_2": 7, "val_3": 1},
]
return (
<div className="App">
{
[...new Map(input.map(i => [i.val_1+i.val_2+i.val3, i])).values()].map(
(data) => {
return (
<div>
<p>unix: {data.unix} val_1: {data.val_1} val_2: {data.val_2} val_3: {data.val_3}</p>
<p>-----------------------</p>
</div>
)
}
)
}
</div>
);
}
但我不确定这是个好主意
你觉得怎么样
编辑:
如果按val_1、val_2和val_3预期输出进行过滤:
unix: 2 val_1: True val_2: 5 val_3: 10
-----------------------
unix: 3 val_1: False val_2: 3 val_3: 2
-----------------------
unix: 5 val_1: True val_2: 7 val_3: 1
-----------------------
您应该指定基于哪个键进行筛选,例如,如果您希望基于以下条件返回iterms:
unix>2和item.val\u 1==True
然后您可以按如下方式执行:
filtered=input.filter(item=>item.unix>2&&item.val\u 1)
console.log(已过滤)
你一定错了。你想做什么?您希望得到什么输出?@CrispenGari,我添加了期望的输出。@CrispenGari请不要使用代码格式来强调;使用粗体(**粗体**
)或斜体(\u斜体
)进行强调。为代码保留代码格式。您根据什么条件进行筛选?是的,但是如何比较项[idx].val\u 1和项[idx+1].val\u 1?如果项[idx]。val_1==项[idx+1]。val_1?项[idx+1]
在您的案例中使用筛选器时不可迭代,则只显示和项[idx]。你不能那样做
unix: 2 val_1: True val_2: 5 val_3: 10
-----------------------
unix: 3 val_1: False val_2: 3 val_3: 2
-----------------------
unix: 5 val_1: True val_2: 7 val_3: 1
-----------------------