将数组转换为字符串,同时从其他数组向其添加元素

时间:2016-04-20 19:08:27

标签: javascript arrays

我在路的尽头所以请耐心等待。该问题在标题中给出。我使用的代码如下:

var arr = [7, 29, 8, 33, 37, 4, -31, 39, 32, -12, 9];
var even = [];
for (var i = 0; i < arr.length; i++){
        if(arr[i]%2 == 0){
            even += arr[i];
        }
    }
console.log(even.length);

代码应该从数组中获取偶数元素并将其移动到另一个元素。 运行代码时,变量&#34; even&#34;将把元素作为&#34; 8432&#34;而不是[8,4,32],这将在最后给我一个错误的控制台结果:&#34; 4&#34;而不是&#34; 3&#34;。我无法弄清楚为什么会这样。

4 个答案:

答案 0 :(得分:3)

尝试

even.push(arr[i])

而不是

even += arr[i];

有关更多示例,请参阅http://www.w3schools.com/jsref/jsref_push.asp

答案 1 :(得分:1)

使用push而不是+=

even.push(arr[i]);

在JavaScript中,您可以将数组视为一个堆栈(推送和弹出)。

More information

答案 2 :(得分:1)

将您的平均值存储在变量中,然后将该值推入偶数数组。尝试使用Snippet,它会显示结果。

var arr = [7, 29, 8, 33, 37, 4, -31, 39, 32, -12, 9];
var even = [];
for (var i = 0; i < arr.length; i++){
        if(arr[i]%2 == 0){
            var x = arr[i];
            even.push(x)
        }
    }
console.log(even);
<!-- Results pane console output; see http://meta.stackexchange.com/a/242491 -->
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>

答案 3 :(得分:1)

您可以使用filter()方法

&#13;
&#13;
var arr = [7, 29, 8, 33, 37, 4, -31, 39, 32, -12, 9];
var even = arr.filter(function(el) {
  return el % 2 == 0;
});

console.log(even);
&#13;
&#13;
&#13;