在函数的第一个 else 语句中,使属性等于值的确切目的是什么

In the first else statement of the function, what exactly is the purpose of making a property equal a value?

本文关键字:于值 是什么 属性 第一个 函数 else 语句      更新时间:2023-09-26

为什么 [value] 在第一个 else 语句中放在括号中,而在第二个 else if 语句中不在括号中?另外,如何将道具制成等于价值,这有什么作用?

这是代码:

// Setup
var collection = {
    "2548": {
      "album": "Slippery When Wet",
      "artist": "Bon Jovi",
      "tracks": [ 
        "Let It Rock", 
        "You Give Love a Bad Name" 
      ]
    },
    "2468": {
      "album": "1999",
      "artist": "Prince",
      "tracks": [ 
        "1999", 
        "Little Red Corvette" 
      ]
    },
    "1245": {
      "artist": "Robert Palmer",
      "tracks": [ ]
    },
    "5439": {
      "album": "ABBA Gold"
    }
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));
// Only change code below this line
function updateRecords(id, prop, value) {
  if (prop === "tracks" && value !== "") {
   if(collection[id][prop]) {
    collection[id][prop].push(value);
   }
   else {
    collection[id][prop]=[value];
   }
  } else if (value !== "") {
    collection[id][prop] = value;
  } else {
    delete collection[id][prop];
  }
  return collection;
}
// Alter values below to test your code
updateRecords(5439, "tracks", "Take a Chance on Me");
if (prop === "tracks" && value !== "") {
  if(collection[id][prop]) {
   collection[id][prop].push(value);
 }
 else {
  collection[id][prop]=[value];
 }
} else if (value !== "") {
  collection[id][prop] = value;
} else {
  delete collection[id][prop];
}

如果我将上面的代码翻译成伪代码,它将是

如果属性为"跟踪并且输入的值不为空 =>

[ 如果集合对象已具有该属性,请将新值推送到数组中。 否则,即,如果集合对象不存在该属性,则创建一个新数组,并将 value 作为数组中的唯一元素,并将该数组分配给该属性。]

否则(这意味着道具不等于"轨道")=>[将值分配给属性]

否则,如果值为空 =>[从集合对象中删除属性]

简而言之,逻辑是,如果新道具是"tracks",要么创建一个新数组,要么添加到针对"tracks"存储的现有值数组中。如果不是,并且值不为空,则将该值分配给属性如果值为空,请删除属性本身。

collection[id][prop]=[value];

表示数据如下所示

var collection = {
id: {
prop:
[value]
}
}

而没有括号,它看起来像这样

  var collection = {
    id: {
    prop:
    value
    }
    }

因此,在有括号的情况下,我们说 prop 等于一个内部包含一个元素的数组,值。

在另一种情况下,它是在没有数组的情况下分配值。

至于为什么要这样做?不确定。