我有一些数组,我想插入动态多维数组
{{1}}
为什么这样的错误" TypeError:multi [group]未定义"
答案 0 :(得分:4)
您正在尝试使数组像对象一样。如果你想使你的代码工作,那么你应该像:
var multi = {};
var group = 'fruit';
var fruit_name = 'apple';
multi[group] = {};
multi[group][fruit_name] = [];
multi[group][fruit_name].push({'berbiji' : 'ya', 'panen' : '3tahun'});
答案 1 :(得分:0)
键的名称(' fruit' apple')不是数字,因此它不是矩阵(数组数组),而是一组嵌套对象。
嵌套数组(键是数字):
multiArray = [[
{'berbiji' : 'ya', 'panen' : '3tahun'}]]
]]
multiArray[0][0].panen === '3tahun' // true
嵌套对象(键是字符串):
multiObject = {
fruit: {
apple: {'berbiji' : 'ya', 'panen' : '3tahun'}
}
}
multiArray[group][fruit_name].panen === '3tahun' // true
无论哪种方式,都需要先启动嵌套对象或数组,然后才能为键赋值。
按照你的例子:
var multi = {}
var group = 'fruit'
var fruit_name = 'apple';
multi[group] = {} // same as multi.fruit = {}
multi[group][fruit_name] = {'berbiji' : 'ya', 'panen' : '3tahun'}
multi.fruit.apple.panen === '3tahun' // true