Javascript JQuery-将JSON中的值转换为split(),然后更新var

Javascript JQuery-将JSON中的值转换为split(),然后更新var,javascript,jquery,json,Javascript,Jquery,Json,我有一个JSON数组,其中有两个键和多个值,我想分割每个值,如果其中一个值存在,它会将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: [{

我有一个JSON数组,其中有两个键和多个值,我想分割每个值,如果其中一个值存在,它会将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

我的完整代码可以找到


谢谢

我必须说,这是一个设计非常笨拙的JSON结构

眼前的问题是

{ 0:“法师”, 1: 0, 2:“英雄主义,暴击,法术能力” }

此代码段实际上定义了一个对象文字,访问它的正确方法实际上是使用“.”,例如data.1、data.2,而不是使用方括号以数组方式访问


因此,将这些属性重命名为name、buff等将更有意义

为什么
mage
仅包含一个元素时是数组?我使用数组将类的“buff”存储在键2中,并在键1中声明该类是否在raid组中。对于键0,我使用它作为代码另一部分中对象的标识符。您可以使用
数据[0]
数据[1]
等访问该对象中的对象属性。使用“点访问”并不是“正确”的,因为它是唯一的方法——一般来说,它只适用于某些属性名称,而方括号表示法适用于所有属性名称。我对JSON和JQuery非常陌生-我正在学习,并且在某些方面遇到了困难-特别是数组-我认为这可能是存储每个类多个值(mage)的最佳方法。这不允许我发表更长的评论