我想將陣列的零點移動到陣列的末尾,比如
zeroesToEnd([1, 2, 0, 0, 4, 0, 5])
[1, 2, 4, 5, 0, 0, 0]
我試過這個
console.log(zeroesToEnd([1, 2, 0, 0, 4, 0, 5]))
function zeroesToEnd(a) {
let counter=0;
let concatarr=[];
for(let i=0; i <= a.length;i ){
if(a[i]===0){
concatarr.push(0);
counter
}
}
return a.concat(concatarr)
}
uj5u.com熱心網友回復:
我會試試這個,將零和其他數字分開,然后將它們連接成 1 個陣列
console.log(zeroesToEnd([1, 2, 0, 0, 4, 0, 5]))
function zeroesToEnd(a) {
let arr1 = a.filter((ele) => ele !== 0)
let arr2 = a.filter((ele) => ele == 0)
return arr1.concat(arr2)
}
uj5u.com熱心網友回復:
我認為使用該filter方法可以滿足您的問題,但是本著使答案與您的嘗試保持一致的精神,我想包含一個使用 for 回圈的答案。
在我的回答中,我初始化了一個變數來跟蹤第一個陣列中零的數量。然后,我初始化一個新陣列來保存所需的結果。
我有一個 for 回圈遍歷傳遞給函式的陣列中的專案,如果它為零,我增加計數,否則我將專案添加到 newArray。之后,我有另一個 for 回圈,它運行我們計數為零的次數,并在 newArray 的末尾添加一個零。
請注意,這不會改變原始陣列,而是生成一個新陣列。
function zeroesToEnd(a) {
let countOfZeros = 0;
const newArray = [];
for (const item of a) {
if (item === 0) countOfZeros ;
else newArray.push(item);
}
for (let i = 0; i < countOfZeros; i ) {
newArray.push(0);
}
return newArray;
}
console.log(zeroesToEnd([1, 2, 0, 0, 4, 0, 5]));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/421935.html
標籤:
上一篇:如果條件不滿足則回傳空字串
