JavaScript 对象键和值作为数组
javascript object key and value as array
我想动态创建一个形式的对象 - {"abc": [x1,x2], "efg": [x3, x4, x1]}以下代码不起作用。这里有什么问题?
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].push(y1);
在行中:
catCmp[x1] = catCmp[x1].push(y1);
catCmp[x1].push(y1)
返回的值是 y1
的值。所以这就是分配给catCmp[x1]
的值。
正如其他答案中所建议的,不要做作业,只要做:
catCmp[x1].push(y1);
catCmp[x1].push(y1);
catCmp[x1].push(y2);
catCmp[x2].push(y3);
catCmp[x2].push(y4);
catCmp[x2].push(y1);
JavaScript push 方法
返回调用 push 方法的对象的新长度。
因此,在您的情况下,声明
catCmp[x1] = catCmp[x1].push(y1);
make catCmp[x1] = catCmp[x1].length
不仅不需要,也不应该重新分配推送操作的结果。因此,只需使用:
catCmp[x1].push(y1);
相关文章:
- 警报数组索引和值
- 我想重新排列我的数组和其他数组一样,这个数组是键和值
- 将对象完全转换为键和值的数组:更好的解决方案
- Javascript移除已知值的键和值数组
- 如何循环json数组以获取javascript中的键和值
- 如何将用户定义的键和值添加到数组中
- 包含键和值数组的字典
- 如何制作具有键和值组的动态JavaScript数组
- 如何从 Assoc 数组中选择随机值,然后显示键和值
- 如何在数组中推送以变量作为键和值的新对象,我也不确定我是否用方法替换做对了
- 基于键和值的筛选数组
- JavaScript - 显示数组的键和值
- 将 JSON 转换为具有自定义键和值的对象数组
- 如何映射对象数组中的键和值
- 循环遍历对象并将键和值推入数组
- Javascript数组对象和值
- Jquery映射数组键和值
- Javascript多维数组-键和值
- 数组键和填充
- 将两个数组(键和值)合并到一个对象中