在函数的第一个 else 语句中,使属性等于值的确切目的是什么
In the first else statement of the function, what exactly is the purpose of making a property equal a value?
为什么 [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 等于一个内部包含一个元素的数组,值。
在另一种情况下,它是在没有数组的情况下分配值。
至于为什么要这样做?不确定。
相关文章:
- 让会话值可用于JavaScript的好方法是什么
- ECMAScript(ECMA-262 5.1)中“引用”的“基值”是什么
- 调用 foo() 后的 x 和 y 值是什么
- ¶ 的代码 URI 值是什么
- CssClass 属性的此值是什么意思
- Javascript:执行 onchange 函数时选择的值是什么
- J查询每个函数后的值是什么意思
- getByteFrequencyData()返回的Array的值是什么意思
- 如何使选项始终显示,无论输入值是什么
- 复合let/const赋值是什么意思
- “jqXHR.status”的可能值是什么
- JavaScript数组文字定义中逗号后面的值是什么
- 用“日期”初始化的值是什么?日期选择器的beforeShowDay函数中的参数
- addeventlistener命令的type command的字符串值是什么?
- XMLHttpRequest上async属性的javascript默认值是什么?开放的方法
- jQuery的scrollTop值是什么意思?
- 函数中的函数中参数的初始值是什么?
- 主干事件名称的有效值是什么
- switch 语句 - 默认情况下,JavaScript 变量的布尔值是什么
- 进入数据库的值是什么