我有一個物件陣列,我試圖在一個新陣列中插入資料。
這是陣列,可能有兩個或多個物件:
const param = [{
sortType: "ascending",
sortField: "id",
},
{
sortType: "descending",
sortField: "title",
},
];
let sortFields = [];
let sortTypes = [];
let sortString = [];
//iterates the sort params
for (let p of param) {
sortFields.push(p.sortField);
sortTypes.push(p.sortType);
}
for (let st of sortTypes) {
sortString.push(st === "ascending" ? " " : "-");
for (let sf of sortFields) {
sortString.push(sf);
}
}
console.log({
sortString
})
我打算做的是有一個具有以下輸出的陣列:
[" id","-title"]
目前,我被兩個內插的 for 回圈所困,它們做的事情非常不同。我已經嘗試標記回圈并continue在內部回圈中使用關鍵字,但仍然給我一個非常不同的輸出。
關于如何實作這一目標的任何建議?也許分別放置兩個陣列,然后創建一個新的回圈來插入和連接陣列中的字串?
任何幫助表示贊賞!
uj5u.com熱心網友回復:
您可以使用Array#map將每個條目轉換為您想要的字串。
如果您要遍歷回圈并將專案推送到陣列,則很可能可以使用Array#map以更簡潔的方式完成。
const param = [{
sortType: "ascending",
sortField: "id",
},
{
sortType: "descending",
sortField: "title",
},
];
const sortString = param.map((p) => {
return p.sortType === "ascending" ? ` ${p.sortField}` : `-${p.sortField}`
});
console.log({
sortString
})
uj5u.com熱心網友回復:
你回圈太多了。您可以簡單地使用該Array.prototype.map功能:
param.map(el => (el.sortType === 'ascending' ? ' ' : '-') el.sortField)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485221.html
標籤:javascript 数组 排序
