Kam*_*med 1 javascript arrays jquery
我有一个数组,它一次只有一个非零值和其他0值.例如,它可能是
[0,0,0,0,0,0,0,1234,0,0,0]
// or
[0,0,2823,0,0,0,0,0,0,0,0]
//...
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何使用javascript从数组中获取此非零值.
我知道我可以迭代数组并在找到它后立即返回非零值,但我想知道javascript是否提供了任何功能来执行此操作?
您可以从数组中过滤掉它:
[0,0,0,0,0,0,0,1234,0,0,0].filter(function(x) { return x; }).pop(); // 1234
Run Code Online (Sandbox Code Playgroud)
作为@Sarath在评论中提到的,如果你最初的阵列可以有其他的falsy非数值(如false,undefined,'',等),你可以添加一个严格的比较:
[0,0,0,0,0,0,0,1234,0,0,0].filter(function(x) { return x !== 0; }).pop();
Run Code Online (Sandbox Code Playgroud)
数字数组的另一个简短解决方案是使用reduce方法:
[0,0,0,0,0,0,0,1234,0,0,0].reduce(function(a, b) { return a + b; }); // 1234
Run Code Online (Sandbox Code Playgroud)
注意:检查浏览器兼容性filter和reduce方法,并根据需要使用polyfill.