Javascript 为什么push显示为未定义,即使它是一个关键字,并且我没有将其声明为任何对象?

Javascript 为什么push显示为未定义,即使它是一个关键字,并且我没有将其声明为任何对象?,javascript,arrays,Javascript,Arrays,因此,函数应该向数组中添加新值,但我不确定为什么总是收到一个错误,说它是push of undefined。似乎您正试图将某些内容推送到集合[id]。prop 您必须在前一行中省略了集合的索引引用: function updateRecords(id, prop, value) { if (prop !== "tracks" && value !== ""){ collection[id][prop] = value; } if (collection[i

因此,函数应该向数组中添加新值,但我不确定为什么总是收到一个错误,说它是push of undefined。

似乎您正试图将某些内容推送到
集合[id]。prop

您必须在前一行中省略了
集合的索引引用

function updateRecords(id, prop, value) {
  if (prop !== "tracks" && value !== ""){
    collection[id][prop] = value;
  }


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

  if (prop === "tracks" && collection[id].hasOwnProperty(prop) == false){
    collection.prop = [];
    collection[id].prop.push(value);


  }



  return collection;
}

似乎您正试图将某个内容推送到集合[id]。prop

您必须在前一行中省略了
集合的索引引用

function updateRecords(id, prop, value) {
  if (prop !== "tracks" && value !== ""){
    collection[id][prop] = value;
  }


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

  if (prop === "tracks" && collection[id].hasOwnProperty(prop) == false){
    collection.prop = [];
    collection[id].prop.push(value);


  }



  return collection;
}

首先,
push
不是“关键字”;它只是一个方法名。您的错误意味着
.push()
左侧的东西是
未定义的
。请注意,您的代码向
集合添加了
.prop
属性,但随后引用了
集合[id]。prop
。当属性名称存储在变量中时,必须始终使用括号表示法。首先,
push
不是“关键字”;它只是一个方法名。您的错误意味着
.push()
左侧的东西是
未定义的
。请注意,您的代码向
集合添加了
.prop
属性,但随后引用了
集合[id].prop
。当属性名存储在变量中时,必须始终使用括号表示法。哦,我怎么会错过这个!太谢谢你了,我怎么会错过呢!多谢各位