我正在尝试使用数组作为键值类型场景,并且它正在处理每个值以“undefined”开头的异常。我认为这是由于初始赋值是+ =运算符,但我不知道如何解决它。
这是剥离了大量字符串concats的代码....
var phasehtml = {};
$.each(json, function (i, item) {
phasehtml[item.Phase] += 'item:'+item.ID;
});
基本上我试图将字符串附加到适当的键....
答案 0 :(得分:3)
如果已经存在ID,您可以将代码更改为仅附加ID:
var phasehtml = {};
$.each(json, function (i, item) {
// Use the existing value for the phase, or an empty string that we can append to
var existingValue = (phasehtml.hasOwnProperty(item.Phase) ? phasehtml[item.Phase] : "");
phasehtml[item.Phase] = existingValue + 'item:' + item.ID;
});
假设您希望phasehtml包含每个阶段的“item:1item:2”形式的附加列表。
答案 1 :(得分:0)
您发布的数组是空的。
var phasehtml = {};
这似乎是以下陈述的原因 phasehtml [item.Phase] 被评估为“未定义”。
答案 2 :(得分:0)
嗯,
遇到了问题。
在您的代码中,您尝试使用之前未定义的值添加,这就是发生此错误的原因。
在您的代码中,您尚未初始化要添加的变量。
所以试试这个:
var phasehtml = {};
$.each(json, function (i, item) {
phasehtml[item.Phase] = "";
phasehtml[item.Phase] += 'item:'+item.ID;
});
首先分配一些值,这里是空白然后使用该数组索引。