javascript – 使用下划线将两个键和值的数组合并到一个对象

给定两个数组,一个有键,一个数值:

keys = ['foo', 'bar', 'qux']
values = ['1', '2', '3']

如何将它转换成一个对象,只使用underscore.js方法?

{
   foo: '1', 
   bar: '2',
   qux: '3'
}

我不是在寻找一个简单的javascript答案(like this).

我要求这是一个个人的练习.我认为下划线有一个方法正在做这个,只是发现它不,这让我想知道是否可以做到.
我有一个答案,但它涉及不少的操作.你会怎么做?

您需要使用的是下划线js的_.object方法.
如果您的版本的underscore.js中不存在object方法,则必须手动将此方法添加到该方法中.

keys = ['foo', 'bar', 'qux']
values = ['1', '2', '3']
_.object = function(list, values) {
  if (list == null) return {};
  var result = {};
  for (var i = 0, l = list.length; i < l; i++) {
    if (values) {
      result[list[i]] = values[i];
    } else {
      result[list[i][0]] = list[i][1];
    }
  }
  return result;
};

console.log(_.object(keys, values))
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
http://stackoverflow.com/questions/12199051/merge-two-arrays-of-keys-and-values-to-an-object-using-underscore

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 使用下划线将两个键和值的数组合并到一个对象