我想动态地创建一个形式的对象 - {“abc”:[x1,x2],“efg”:[x3,x4,x1]} 以下代码不是工作......这里有什么问题?JavaScript对象键和数值作为数组
var catCmp = {};
var x1="abc";
var x2="efg";
var y1="x1";
var y2="x2";
var y3="x3";
var y4="x4";
if (typeof catCmp[x1] === 'undefined') {
catCmp[x1] = [];
}
if (typeof catCmp[x2] === 'undefined') {
catCmp[x2] = [];
}
catCmp[x1] = catCmp[x1].push(y1);
catCmp[x1] = catCmp[x1].push(y2);
catCmp[x2] = catCmp[x2].push(y3);
catCmp[x2] = catCmp[x2].push(y4);
catCmp[x2] = catCmp[x2].push(y1);
console.log('catCmp :::', catCmp);
你为什么这样做'catCmp [X1] = catCmp [X1] .push(Y1);',而不是'catCmp [X1] .push(Y1);'? – 2012-01-12 07:08:46
感谢所有的指针,特别是“推新方法返回新对象的长度”。 – user644745 2012-01-12 09:31:49