Javascript 用于将名称值对分配给对象的简写

Javascript Shorthand for assigning name value pair to object

本文关键字:对象 分配 用于 Javascript      更新时间:2023-09-26

向新对象添加名称值对时:

function example() {
   var address = {}; //I'd like to omit this line somehow, is it possible?
   var values = ["Dog", "Cat", "Giraffe", "Monkey", "Goose"]
   for (i=0; i <5; i++) {
      address[i] = values[i]
   }
}

是否有任何速记可以让我省略上面评论的行?

您可以使用对象或数组文本语法或对象/数组方法创建该类型的数组。

数组

数组:

// Using array literal grammar
var arr = [[value1, value2, value3], [value1, value2]]
// Creating and pushing to an array
var arr = [];
arr.push([value1, value2, value3]);

数组的对象:

  // Using object literal grammar
    var obj = { "key": [value1, value2, value3], "key2": [value1, value2] } 
    // Creating object properties using bracket or dot notation
    var obj = {};
    obj.key = [value1, value2, value3];
    obj["key2"] = [value1, value2]; 

如果您正在寻找一种替代方法来执行示例正在执行的操作,则可以使用 Array.prototype.reduce . 如果您了解它的工作原理,那么在我看来它会干净得多。

var vals = ["Dog", "Cat", "Giraffe", "Monkey", "Goose"];
function assignNameVal(arr){
    return arr.reduce(function(prev, curr, index, array){ 
      prev[index] = curr;        // curr is each element in arr for each iteration
      return prev;               // returned value is the prev arg for next execution in iteration
    }, {});                      // {} is first value of prev
}