如何使用索引在JSON数组中动态添加值

时间:2015-09-28 15:50:44

标签: arrays angularjs list

我的脚本中有这种格式

//declaration of JSON object
items= {};
items.values= [];

我需要这样的结构,在执行脚本时自动插入:

    items : 
        {
        key :['one', 'two', 'three', 'four'],
        values: [1, 2, 3, 4]
        }

由于item.values [0]未定义,因此会抛出一个未定义的错误。任何人都可以告诉我如何初始化JSON对象,这样它就不会抛出未定义的错误

我想像这样插入:

var i=0;
item.key[i]= 'one';
item.values[i]= 1;

我不确定这是否是最佳做法,如果有人知道更好的方式请发布!

提前致谢

1 个答案:

答案 0 :(得分:1)

你有正确的想法。看起来您添加密钥的属性不存在。我们声明两个属性keysvalues

items= {};
items.keys = [];
items.values= [];

我们的JavaScript对象现在看起来像这样

{ "keys": [], "values": [] }

var words = ['one', 'two', 'three', 'four'];
var numbers = [1,2,3,4];

您现在想要使用for循环进行迭代。在JavaScript中,数组是0索引的,这意味着第一个元素的索引为0。这就是为什么我们用值0初始化i变量。在每次迭代之后,我们递增这个变量然后检查它是否小于数组的长度。

function populateObject() {
    for (var i = 0; i < words.length; i++) {
        items.keys.push(words[i]);
        items.values.push(numbers[i]);
    }
}

然后调用你的函数

populateObject();

这是输出

{"keys": ["one", "two", "three", "four"], "values": [1, 2, 3, 4]}