我想从每个循环中创建的数组中获取值
var arr = [];
$.each([52, 97], function(index, value) {
var arr = [value];
});
console.log(arr);
但是已记录的数组没有条目。
答案 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)
您可以简单地使用扩展语法来复制数组元素,而无需引用。这意味着您可以独立更改任何数组的内容,而不会影响其他数组的内容。
var arr1 = [ 52, 97 ];
var res = [...arr1];
console.log(res);
&#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']; ?>">