Javascript 对象去极化中的访问变量

Javascript 对象去极化中的访问变量,javascript,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 !== ""){

你的怎么样?嗯,我希望:)

我有这个密码

// 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

我想在对象声明中访问我函数的value prop。但是声明中的prop值是类似于字符串的prop。我怎样才能改变它

这是执行代码后的集合

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

    }
};

我不要像绳子一样的道具。我希望变量的值通过参数发送到函数

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

collection[id][prop] = value;

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

collection[id][prop] = value;
问题是
prop:“ABBA”
实际上是
prop
而不是变量prop。改为:

function updateRecords(id, prop, value) {

  if(!collection[id].hasOwnProperty(prop) && value !== ""){
     collection[id][prop] = value;
  }
  return collection;
}
这还解决了另一个问题,即覆盖整个对象,而不仅仅是更新目标属性。

问题在于
prop:“ABBA”
是字面意义上的
prop
而不是变量prop。改为:

function updateRecords(id, prop, value) {

  if(!collection[id].hasOwnProperty(prop) && value !== ""){
     collection[id][prop] = value;
  }
  return collection;
}
这还解决了另一个问题,即覆盖整个对象,而不仅仅是更新目标属性