如果在 Javascript 中的 .map() 中没有 else 语句,如何使用单行代码?

How to use one-liner if without else statement in .map() in Javascript?

我有一个问题,我不知道如何解决。

我想用 .map((x) => x.data) 映射数据,里面只有一行 if 语句,但没有任何 else 语句。我想取得更多成就,否则 'pass' 就像 Python.

例如:

我想要的:

let mappedData = data.map((x) => x.data === filters.data ? [x.value, x.name, x.category]: pass);

这应该 return mappedData 包含仅满足条件的数据。

当我这样使用某物时

let mappedData = data.map((x) => x.data === filters.data ? [x.value, x.name, x.category]: {});

它 returns 大小数据数组,如果条件未填充,则为空字典。

我也试过这样的:

let mappedData = data.map((x) => x.data === filters.data && [x.value, x.name, x.category]);

但这让我 false 在每个不满足条件的索引处。

如果可以的话我很想做单行

谢谢大家

您不能通过 map 调用省略元素,但您可以使用 filter 来做到这一点,然后 map 其余元素:

let mappedData =
   data.filter((x) => x.data === filters.data)
       .map((x) => [x.value, x.name, x.category]);

不太确定你想要什么,但这有帮助吗?

let data = [{name: "Peter", age:29}, {name: "Rina", age: 36}, {name: "Joseph", age: 37}];
let filters = {name: "Rina", age: 36}; 
let res=[];
data.map((item) => {(item.name === filters.name)? res.push(item):null});
console.log(res);
let mappedData = data.map((x) => x.data === filters.data ? [x.value, x.name, x.category]: pass);