這個問題在這里已經有了答案: 同時映射和過濾陣列 (14 個回答) 14 小時前關閉。
我有一個我不知道如何解決的問題。
我想.map((x) => x.data)用單行 if 陳述句映射資料,但沒有任何 else 陳述句。我想實作更多,否則就像在 Python 中一樣“通過”。
例如:
我想要的是:
let mappedData = data.map((x) => x.data === filters.data ? [x.value, x.name, x.category]: pass);
這應該回傳mappedData僅滿足條件的資料。
當我像這樣使用某物時
let mappedData = data.map((x) => x.data === filters.data ? [x.value, x.name, x.category]: {});
如果條件未填充,它回傳大小資料陣列和空字典。
我也試過這樣的:
let mappedData = data.map((x) => x.data === filters.data && [x.value, x.name, x.category]);
但這給了我false不滿足條件的每個索引。
如果可能的話,我真的很想做單線。
多謝你們
uj5u.com熱心網友回復:
您不能通過map呼叫省略元素,但您可以使用它filter來執行此操作,然后map是其余元素:
let mappedData =
data.filter((x) => x.data === filters.data)
.map((x) => [x.value, x.name, x.category]);
uj5u.com熱心網友回復:
不確定您想要什么,但這會有所幫助嗎?
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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/390697.html
標籤:javascript 数组 数组.prototype.map
下一篇:在反應中洗掉地圖中陣列中的元素
