将对象属性设置为带括号或不带括号的值参数

时间:2019-03-23 01:38:57

标签: javascript

在以下功能中,将括号value中的collection[id][prop] = [value]放在括号中与不使用括号有什么区别?

function updateRecords(id, prop, value) {
  if (collection[id].hasOwnProperty(prop)) {
    if(value === ""){
      delete collection[id][prop];
    }else if(prop == "tracks"){
      collection[id][prop].push(value);
    }else{ collection[id][prop]= value;
    }
  } else {
    if(value != ""){
      if(prop == "tracks"){
        collection[id][prop] = [value];
      }else{
        collection[id][prop] = value;
      }
    }
  }

  return collection;
}

1 个答案:

答案 0 :(得分:0)

在对象集合中,对于任何特定对象(此处将由ID标识)具有某些属性。其中之一是“轨道”,它是一种数组。在功能上 它检查“ tracks”属性,如果它是“ tracks”,则函数要确保将其设置为数组。要将其设置为数组,需要带方括号。如果该属性不是“ tracks”,则函数希望以任何形式设置值或键入其后缀。

首先,如果条件,函数检查对象是否已经存在“ tracks”属性(如果存在),然后将新值推送到现有数组。在其他情况下,“ tracks”属性不存在,因此将其设置为新数组。

所以回答您的问题,如果您想将值设置为数组,则需要使用方括号或其他任何可以声明和设置数组的方式。