从数组中删除等于零的尾随元素 - 更好的方法 [英] remove trailing elements from array that are equal to zero - better way

查看:72
本文介绍了从数组中删除等于零的尾随元素 - 更好的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有很长的数组包含数字。我需要从该数组中删除尾随零。



如果我的数组看起来像这样:

  var arr = [1,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0]; 

我想删除除之外的所有内容[1,2,0,1, 0,1]



我已经创建了正在进行预期的功能,但我想知道功能是否有内置功能我可以使用。

  var arr = [1,2,0,1,0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0]; 
for(i = arr.length-1; i> = 0; i--)
{
if(arr [i] == 0)
{
arr.pop();
}其他{
休息;
}
}
console.log(arr);

这可以做得更好/更快吗?

  var arr = [1,2,0,1, 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; 

您可以使用这个更短的代码:

  while(arr [arr.length-1] === 0){//当最后一个元素为0时,
arr.pop(); //删除最后一个元素
}

结果:

  arr == [1,2,0,1,0,1] 


I have very long array containing numbers. I need to remove trailing zeros from that array.

if my array will look like this:

var arr = [1,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

I want to remove everything except [1, 2, 0, 1, 0, 1].

I have created function that is doing what is expected, but I'm wondering if there is a build in function I could use.

var arr = [1,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
for(i=arr.length-1;i>=0;i--)
{
    if(arr[i]==0) 
    {
        arr.pop();
    } else {
        break;
    }
}
console.log(arr);

Can this be done better/faster?

解决方案

Assuming:

var arr = [1,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

You can use this shorter code:

while(arr[arr.length-1] === 0){ // While the last element is a 0,
    arr.pop();                  // Remove that last element
}

Result:

arr == [1,2,0,1,0,1]

这篇关于从数组中删除等于零的尾随元素 - 更好的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆