我有一个对象
myObject = {
1010: "Some label",
1020: "Another label",
}
我正在使用_.map
这样的
var generateOptions = function ( object ) {
return _.map( object, function( value, key ) {
return {
value: key,
label: key + ' - ' + value
};
} );
}
过去常常使用下划线_.map
,但我想使用内置函数map
。我试过了
var generateOptions = function ( object ) {
return object.map( function( value, key ) {
return {
value: key,
label: key + ' - ' + value
};
} );
}
但似乎map
函数仅适用于数组。
我可以做些什么来获得相同的结果?
答案 0 :(得分:1)
试试这个
var myObject = {
1010: "Some label",
1020: "Another label",
};
var generateOptions = function ( object ) {
return Object.keys(object).map( function( key ) {
return {
value: key,
label: key + ' - ' + object[key]
};
});
}
console.log(generateOptions(myObject));

答案 1 :(得分:1)
您可以使用prototype
为对象提供Object.prototype.map = function(callback) {
var thisObj = this;
return Object.keys(thisObj).map(function(key) {
return {
key: key,
value: thisObj[key]
};
}).map(callback);
}
功能。
map
这将允许您在任何对象上调用var generateOptions = function ( object ) {
return object.map(function( keyValue ) {
return {
value: keyValue.key,
label: keyValue.key + ' - ' + keyValue.value
};
});
}
并将其视为键值对数组。
在你的情况下,它将是:
{{1}}