Javascript 使用不带下划线的映射重新格式化对象
我有一个目标Javascript 使用不带下划线的映射重新格式化对象,javascript,underscore.js,Javascript,Underscore.js,我有一个目标 myObject = { 1010: "Some label", 1020: "Another label", } 我是这样使用\uuu.map var generateOptions = function ( object ) { return _.map( object, function( value, key ) { return { value: key, label: key + ' - ' + value };
myObject = {
1010: "Some label",
1020: "Another label",
}
我是这样使用\uuu.map
var generateOptions = function ( object ) {
return _.map( object, function( value, key ) {
return {
value: key,
label: key + ' - ' + value
};
} );
}
它以前使用下划线的\uu.map
,但我想使用内置函数map
。我试过了
var generateOptions = function ( object ) {
return object.map( function( value, key ) {
return {
value: key,
label: key + ' - ' + value
};
} );
}
但是map
函数似乎只用于数组
我该怎么做才能得到同样的结果呢?试试这个
var myObject={
1010:“一些标签”,
1020:“另一个标签”,
};
var generateOptions=函数(对象){
返回Object.keys(对象).map(函数(键){
返回{
值:键,
标签:键+'-'+对象[键]
};
});
}
log(generateOptions(myObject))
您可以使用原型
为对象提供一个映射
函数
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
};
});
}
使用
Object.keys
从对象中提取关键点,然后按常规方式进行。不过,在排序时要小心。最好包含map
函数的预期结果。