【发布时间】:2017-02-13 13:22:18
【问题描述】:
我被javascript forEach func 卡住了。 下面是一段代码:
const PPPP =
{
'azerty': 0,
'qwerty': []
};
$(document).ready(function () {
var k = [];
var z = [0, 1, 2, 3];
var m = ['a', 'b', 'c'];
z.forEach(function(v) {
var p = Object.assign({}, PPPP);
$('#debug').append(v.toString()+', ');
p.azerty = v;
m.forEach(function(v) {
p.qwerty.push(v);
});
k.push(p);
});
$('#res').html('Final: '+JSON.stringify(k));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="debug"></div>
<div id="res"></div>
预期: 决赛:0、1、2、3、 决赛:[{"azerty":0,"qwerty":["a","b","c"]},{"azerty":1,"qwerty":["a","b"," c"]},{"azerty":2,"qwerty":["a","b","c"]},{"azerty":3,"qwerty":["a","b" ,"c"]}]
有人可以提出解决此问题的替代方法吗? 谢谢!
编辑 #1:通过手动复制分配修复。但由于未知原因不适用于 forEach 中的 forEach。
【问题讨论】:
-
你应该解释你期望这段代码做什么以及会发生什么。
-
解释一下如何?
-
状态更新。解决方案不再适用于 forEach 中的 forEach。
-
已解决,但仍然很奇怪.. 我不得不处理内部的 forEach。
标签: javascript jquery foreach scope