Javascript 在我的例子中,将数组转换为对象的方法

Javascript 在我的例子中,将数组转换为对象的方法,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我经常面临这个问题,我厌倦了编写转换函数 我能行 function toObject(arr) { var rv = {}; for (var i = 0; i < arr.length; ++i) rv[i] = arr[i]; return rv; } 我正在使用chrome API,其中链接是obj: chrome.tabs.create(obj, function(tab) { }); 在ES5浏览器中,您可以执行以下操作: var obj = {};

我经常面临这个问题,我厌倦了编写转换函数

我能行

function toObject(arr) {
  var rv = {};
  for (var i = 0; i < arr.length; ++i)
    rv[i] = arr[i];
  return rv;
}
我正在使用chrome API,其中链接是obj:

chrome.tabs.create(obj, function(tab) {

});

在ES5浏览器中,您可以执行以下操作:

var obj = {};

[0,1,2].forEach(function(v, i){obj[i] = v});

[0,1,2].forEach(function(v, i, arr){this[i] = v}, obj);
作为一项功能:

function toObj(arr) {
  var obj = {};
  arr.forEach(function(v, i){obj[i] = v});
  return obj;
}
如果传入的对象可能不是数组,而是属性为0到n的对象,则:

function toObj(arr) {
  var obj = {};
  [].forEach.call(arr, function(v, i){obj[i] = v});
  return obj;
}

数组是对象。;-)
function toObj(arr) {
  var obj = {};
  [].forEach.call(arr, function(v, i){obj[i] = v});
  return obj;
}