创建数组时,我们可以忽略关键字段,让JavaScript从0开始按顺序为我们生成关键字。
var color = ['green', 'blue', 'red', 'yellow', 'purple'];
我们可以像
那样访问alert(color[0]); //green
我想用数字键创建一个对象,但我不想明确定义它们,是否有类似的方法?
我试过了
var color = {'green', 'blue', 'red', 'yellow', 'purple'};
console.log(color);
但是这并没有按预期工作,返回 SyntaxError:missing:在属性id之后
答案 0 :(得分:0)
我认为不可能。根据W3C定义javascript对象:
JavaScript对象是命名值的容器。
命名值写为名称:值对(名称和值以分号分隔)。
JavaScript对象中的名称:值对称为对象属性。
因此你不能这样做。要么使用循环来创建这种情况。例如:
var obj = {};
for(var i = 0; i < length; i += 1) {
obj[i] = color[i] ;
}
答案 1 :(得分:0)
不可能。这就是js对象的方式。
您是否只是遍历数组并将数据放入对象中?
var color = ['green', 'blue', 'red', 'yellow', 'purple'];
var colors_obj = {};
for(var color_num_key in color) {
colors_obj[color_num_key] = color[color_num_key];
}
console.log(colors_obj);
答案 2 :(得分:0)
如果你坚持,@ canon的reduce
解决方案和@ Fyre的手动解决方案都很好,但同时也是:
$.extend({}, color) // jQuery
_.extend({}, color) // Underscore
Object.assign({}, color) // ES6
LIB.extend_like_api({}, color) // all other libraries in the world
基本上所有这些都是删除&#34; array-ness&#34;数组。