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
函数的预期结果。