如果在 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);
我有一个问题,我不知道如何解决。
我想用 .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);