这个问题在这里已有答案:
首先,我使用Cheerio进行一些DOM访问并使用Node.js进行解析 . 美好时光 .
继承人的情况:
我有一个功能,我需要创建一个对象 . 该对象使用其键和值的变量,然后返回该单个对象 . 例:
stuff = function (thing, callback) {
var inputs = $('div.quantity > input').map(function(){
var key = this.attr('name')
, value = this.attr('value');
return { key : value }
})
callback(null, inputs);
}
它输出:
[ { key: '1' }, { key: '1' } ]
( .map()
返回一个对象数组fyi)
我需要 key
实际上是 this.attr('name')
的字符串 .
什么是在Javascript中将字符串指定为键的最佳方法,考虑到我正在尝试做什么?
2 回答
在新的ES2015 standard for JavaScript(以前称为ES6)中,可以使用计算键创建对象:Object Initializer spec .
语法是:
如果应用于OP的场景,它将变为:
Note: browser compatiblity仍需要转发器 .
使用Babel或Google's traceur,可以use this syntax today .
在早期的JavaScript规范(ES5及以下版本)中,对象文字中的键始终按字面解释为字符串 .
要使用"dynamic"键,您必须使用bracket notation:
在你的情况下:
您无法使用动态键定义对象文字 . 做这个 :
没有捷径(编辑:现在有一个,ES6,见另一个答案) .