我有一個字串陣列,例如const array1 = ["124542", "112244", "112245", "112246"];
我想創建以下結果:
const array2 = [
{
"comparableId": "124542",
"comparatorId": "112244"
},
{
"comparableId": "112244",
"comparatorId": "112245"
},
{
"comparableId": "112245",
"comparatorId": "112246"
}
]
在這個陣列2中,陣列1的第一個索引值是第二個值,第二個值是第三個,第三個是第四個,依此類推。這個array1 是動態的,可以只有1 個值,例如const array1 = ["124542"];
,可以有任意數量的值。
我嘗試過使用 Ecma 腳本reduce
和map
方法。
const array2 = array1.map((value, index) => {
return {
comparableId: value,
comparatorId: array1[index 1] || '',
};
});
還有其他好方法嗎?
uj5u.com熱心網友回復:
在這里使用 for 回圈可能是最簡單的。
const array1 = ["124542", "112244", "112245", "112246"];
const transform = (array) => {
const result = [];
for (let i = 0; i === 0 || i < array.length - 1; i) {
result.push({
comparableId: array[i],
comparatorId: array[i 1] ?? "",
})
}
return result;
};
console.log(transform(array1));
console.log(transform(["124542"]));
uj5u.com熱心網友回復:
完全宣告性,無突變解決方案。
const
array1 = ["124542", "112244", "112245", "112246"],
array2 = [...Array(Math.ceil(array1.length / 2))].map((_, i) =>
({comparableId: array1[i * 2], comparatorId: array1[i * 2 1] ?? ""})
);
console.log(array2);
uj5u.com熱心網友回復:
const array1 = ["124542", "112244", "112245", "112246"];
let array2 = [];
array1.map((item, index) =>{
if(index === (array1.length-1)){return}
array2.push({comparableId: item, comparatorId: array1[index 1]})
})
console.log(array2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486463.html