为什么我不能这样做:
var x = [
{ 'z': 3, y: [1,2,3,4]},
{ 'z': 5, y: [2,2,2,2]},
{ 'z': 6, y: [1,4,3,5]},
{ 'z': 8, y: [1,1,3,4]},
];
$(x).each(function() {
console.log(this.z);
$(this.y).each(function(i, n) {
n = n * 2;
});
});
// expected result from the first iteration would be:
{ 'z': 3, y: [2,4,6,8]}
我想更新n,但不起作用。可以这样做,如果是这样的话?
答案 0 :(得分:1)
当您执行n = n * 2;
时,您只是在n
处理程序中更新局部变量each
的值。
$(x).each(function (_, obj) {
console.log(this.z);
this.y = $.each(this.y, function (i, n) {
obj.y[i] = n * 2;
})
})
演示:Fiddle
答案 1 :(得分:0)
试试这个:
$(x).each(function() {
console.log(this.z);
var y = this.y;
$(y).each(function(i, n) {
y[i] *= 2;
});
});