Javascript 编写一个算法,该算法接受一个数组并将所有零移到末尾
写一个算法,取一个数组并将所有零移到末尾,保留其他元素的顺序 例如:Javascript 编写一个算法,该算法接受一个数组并将所有零移到末尾,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 < arra
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;
}
预期结果与我所取得的非常接近(见上文)。我不明白为什么我在另一个地方有false
简单地试试这个
var arr=[false,1,0,1,2,0,1,3,“a”];
sort(函数(a,b){if(a==0){return 1}});
document.body.innerHTML+=JSON.stringify(arr)代码>如果值为0,请使用===运算符进行比较:
if (arr[i] === 0) {
zeros.push(arr[i]);
} else {
others.push(arr[i]);
}
在这种情况下,尝试使用正常的for循环
和拼接
,以完成您的工作
var arr=[false,1,0,1,2,0,1,3,“a”];
对于(变量i=arr.length;i>0;i--){
if(arr[i]==0){arr.push(arr.splice(i,1.pop());}
}
控制台日志(arr)//[假,1,1,2,1,3,“a”,0,0]
document.body.innerHTML+=JSON.stringify(arr)代码>使用和。
函数移动零(a){
var i=a.长度-1;
而(我--){
如果(a[i]==0){
a、 推(a.拼接(i,1)[0]);
}
}
返回a;
};
var数组=[false,1,0,1,2,0,1,3,“a”];
write(“”+JSON.stringify(moveZeros(array),0,4)+“”)代码>下面的代码段应该可以工作,请尝试,null的原因是arr的长度从零开始计数,因此在使用var titleCase=function(title)时{
var-arr=[];
对于(i=0;i
您可以使用filter()
方法来实现您的目标。使用箭头符号可以缩短代码。例如:arr=>arr==0
是匿名筛选函数function(arr){return arr==0;}
[]和0是相同的值,但类型不同。==匹配值,==匹配值和类型。([]==0)>True,([]==0)>false,您能给代码添加解释吗?
if (arr[i] === 0) {
zeros.push(arr[i]);
} else {
others.push(arr[i]);
}
var titleCase = function(title) {
var arr = [];
for (i = 0; i < title.length ; i++) {
if (title[i] !== 0 ) {
arr.push(title[i]);
}
}
for (i = 0 ; i < title.length ; i++) {
if (title[i] == 0 ) {
arr.push(title[i]);
}
}
return arr;
}
var moveZeros = function (arr) {
const zeros = arr.filter (arr => arr === 0);
const others = arr.filter (arr => arr !== 0);
return others.concat(zeros);
}