我有一个JSON数组,其中2个键和多个值,我想分割每个值,如果其中一个值存在,那么它会将var设置为1.
var heroism = 0;
var stats = 0;
var crit = 0;
var stamina = 0;
var spellPower = 0;
var spellHaste = 0;
var mastery = 0;
var attackPower = 0;
var attackHaste = 0;
var classes = {
mage: [{
0: "mage",
1: 0,
2: "heroism, crit, spellPower"
}],
...
};
$.each(classes, function (key, data) {
$.each(data, function (index, data) {
if (data[1] == 1) {
var i = 0;
var getBuffs = data[2].split(', ');
$.each(getBuffs, function (key, data) {
// update relevant var to 1
data[i] = 1;
i++;
});
$.each(getBuffs, function (key, data) {
$.each(data, function (index, data) {
console.log('index', data);
});
});
} else if (data[3] == 1) {
//do something else
}
});
});
目前正在做的是将每个字母作为数组对象而不是整个单词。我认为这部分是错误的data[i] = 1;
我的完整代码可以找到here
由于
答案 0 :(得分:0)
我必须说这是一个非常笨拙的JSON结构。
这里的直接问题是
{ 0:“法师”, 1:0, 2:“英雄主义,暴击,法术能力” }
这个片段实际上定义了一个对象文字,访问它的正确方法实际上是使用'。',例如data.1,data.2,而不是使用方括号以数组方式访问。
因此,将这些属性重命名为name,buff等等更有意义