javascript - 编写一个算法,接受一个数组并将所有的零移动到末尾

标签 javascript

编写一个算法,接受一个数组并将所有零移动到末尾,同时保留其他元素的顺序。

例如:

moveZeros([false,1,0,1,2,0,1,3,"a"]) // returns[false,1,1,2,1,3,"a",0,0]

我的代码:

var moveZeros = function (arr) {

var zeros = []; 
var others = [];
var res;

var arrayLength = arr.length;
for (var i = 0; i < arrayLength; i++) {
if   (arr[i] ==  0) {
 zeros.push(arr[i]);
 } else {
      others.push(arr[i]);
 }
}
var res = others.concat( zeros );

return res;


}

我得到以下结果:

Expected:    ["a","b",null,"c","d",1,false,1,3,[],1,9,{},9,0,0,0,0,0,0,0,0,0,0],
Instead got: ["a","b",null,"c","d",1,1,3,1,9,{},9,0,0,0,false,0,0,[],0,0,0,0,0]

预期结果与我取得的结果非常接近(见上文)。我不明白为什么我在不同的地方有 false

最佳答案

简单地试试这个

var arr = [false,1,0,1,2,0,1,3,"a"];
arr.sort(function(a,b){if (a===0){return 1}});
document.body.innerHTML += JSON.stringify(arr);

关于javascript - 编写一个算法,接受一个数组并将所有的零移动到末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940262/

相关文章:

java - 带有数据输入的 PHP/JavaScript 网络交互式 map 集?

javascript - Ionic - 将毫秒(长)日期解析为 dd/mm/yyyy

javascript - 使用 jQuery sortable 从数组中排序列表

javascript如果类被隐藏然后滚动

javascript - 带有数据切换的 AngularJS ng-click

javascript - 在 HTML 和 Javascript 中对表格进行排序 - 第一列的问题

javascript - 无法使用 document.getElementById 检索 src 属性

javascript - 通过jquery从文本框中获取值

javascript - 变量偶尔不生成: max call stack size issue

javascript - 如何将我的 Google map 变成图像?并且不能使用鼠标移动?