我的脚本中有这种格式
//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;
我不确定这是否是最佳做法,如果有人知道更好的方式请发布!
提前致谢
答案 0 :(得分:1)
你有正确的想法。看起来您添加密钥的属性不存在。我们声明两个属性keys
和values
。
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]}