在对象的声明中访问变量

时间:2016-10-24 18:48:43

标签: javascript

你好吗?我希望:)

我有这段代码

// Setup
var collection = {
    "5439": {
      "album": "ABBA Gold"
    }
};


// Only change code below this line
function updateRecords(id, prop, value) {

  if(!collection[id].hasOwnProperty(prop) && value !== ""){
     collection[id] = {
       prop: value  
     };
  }
  return collection;
}



// Alter values below to test your code
updateRecords(5439, "artist", "ABBA");

专注于功能updateRecords。

我希望在对象的声明中访问我的函数的值prop。但声明中prop的值是一个字符串。我怎样才能改变它?

这是执行代码后的集合

  var collection = {
    "5439": {
      prop: "ABBA"

    }
};

我不希望道具像弦一样。我想通过函数

的参数发送变量的值

2 个答案:

答案 0 :(得分:3)

要设置对象的属性,请执行以下操作:

collection[id][prop] = value;

答案 1 :(得分:1)

问题是prop: "ABBA"字面上prop而不是变量道具。改为:

function updateRecords(id, prop, value) {

  if(!collection[id].hasOwnProperty(prop) && value !== ""){
     collection[id][prop] = value;
  }
  return collection;
}

这也解决了你遇到的另一个问题,就是你覆盖了整个对象,而不仅仅是更新目标属性。