在每个循环jquery中填充数组

时间:2018-06-12 11:40:55

标签: jquery each

我想从每个循环中创建的数组中获取值

var arr = [];

$.each([52, 97], function(index, value) {

    var arr = [value];

});

console.log(arr);

但是已记录的数组没有条目。

5 个答案:

答案 0 :(得分:2)

您所做的错误是var arr = [ value];重新初始化的变量,请测试:

var arr =[];
$.each([ 52, 97 ], function( index, value ) {
 arr.push(value);
});
console.log(arr);

答案 1 :(得分:1)

您所做的错误是var arr = [ value];重新初始化的变量&数组索引设置错误。

var arr = [];

$.each([52, 97], function(index, value) {

  arr[index] = value;

});

console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

您也可以使用其他答案(@Boris Bresciani)中的push()执行此操作。

答案 2 :(得分:0)

函数内部的变量arr与外部变量arr不同,但是函数的局部变量。要解决这个问题,不要创建一个新的局部变量,而是让函数引用外部变量(这称为闭包)。这应该有效:

var arr =[];
$.each([ 52, 97 ], function( index, value ) { 
  arr.push(value); 
});
console.log(arr);

答案 3 :(得分:0)

您可以简单地使用扩展语法来复制数组元素,而无需引用。这意味着您可以独立更改任何数组的内容,而不会影响其他数组的内容。

&#13;
&#13;
var arr1 = [ 52, 97 ];
var res = [...arr1];
console.log(res);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

使用js中的每个循环在Array中添加值

var ProductTypeId = [];
$("input[name=ProductTypeId]").each(function() {
    if ($(this).prop('checked') == true) {
        ProductTypeId.push($(this).val());
    }
});
alert(ProductTypeId`enter code here`);
<input type="checkbox" class="custom-control-input" name="ProductTypeId" id="<?php echo $term['productTypeId']; ?>"  value="<?php echo $term['productTypeId']; ?>">