【问题标题】:Writing object to array in function form [duplicate]以函数形式将对象写入数组[重复]
【发布时间】:2017-07-09 12:37:14
【问题描述】:

我将如何以函数形式编写下面的代码?

var obj = {
  name : 'Tim',
  age : 20,
  hasPets : false
};
console.log(Object.keys(obj).map(function(item){
    return obj[item];
})); //=> [ 'Tim', 20, false ]

例如——这类函数形式:

 function objectToArray(obj) {
//code here
};

谢谢!

【问题讨论】:

  • 不应该叫objToArray吗?
  • 只需将阻塞代码放入 arrayToObject 函数中?您期望的 I/O 究竟是什么?
  • 您的问题令人困惑。您想要对象到数组(如标题所示)还是数组到对象(如您提供的示例函数名称所示)?
  • 是的,我的意思是 objectToArray。我刚刚编辑了它。对不起!我是编码的新手,所以对你来说可能很简单,但我只是在学习。 :) 非常感谢!
  • @sᴜʀᴇsʜᴀᴛᴛᴀ:至少关闭它是那种东西的欺骗。问题是骗人的。我选择的目标实际上是一样的。不要重新打开这样的东西。即使接近的原因不是“完美”的匹配,我们也不需要在简单的事情上回答几十个问题,比如在函数中包装几行。

标签: javascript arrays javascript-objects


【解决方案1】:

应该这样做

 function getMappedItems(obj) {
  var result =  Object.keys(obj).map(function(item){
    return obj[item];
  });
 return result;
};

上面的功能可以稍微减少一点,边学习边细化。

https://jsfiddle.net/sureshatta/be7q88qv/

【讨论】:

  • 我们至少更改函数名称以匹配它的作用怎么样?
【解决方案2】:

您应该使用Object.prototype.objectToArray 以优雅的方式。

var obj = {
  name : 'Tim',
  age : 20,
  hasPets : false
};

Object.prototype.objectToArray=function(){
    return Object.keys(obj).map(function(item){
        return obj[item];
    }); 
};
console.log(obj.objectToArray())

【讨论】:

  • 老兄,不要修改Object.prototype
  • @Cerbrus,请解释为什么不这样做?
  • @Alexandru-IonutMihai 我只知道你会对我的意见投反对票 xD 仅供参考:我没有投反对票。
  • 那里有很多文章,比如thisthis
  • @Kinduser,我不会反对你。
【解决方案3】:
 var objectToArray= function (obj) {
      return Object.keys(obj).map(function(item){
          return obj[item];
      }); 
 };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-16
    • 2014-06-26
    • 2016-05-15
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2021-08-29
    相关资源
    最近更新 更多