gpt4 book ai didi

javascript - chineseFood[array[0]] = array[array.length-1];

转载 作者:行者123 更新时间:2023-11-30 11:17:57 24 4
gpt4 key购买 nike

我不明白下面代码块中第六行这个 = 符号的用途。我理解参数如何获取数组的每个索引号,我只是不明白为什么 chineseFood[array[0]] = array[array.length-1];换句话说,我没有得到等号的目的,就好像它几乎是相互比较以存储在存储在变量 chineseFood 中的空对象中。有人可以澄清一下吗?将不胜感激。

function transformFirstAndLast(array) {
var chineseFood = {};

//takes 1st element (at index 0) and sets it to the last element (nth index): array(length-1)
chineseFood[array[0]] = array[array.length - 1];

return chineseFood;
}

console.log( transformFirstAndLast(['Orange', 'Lemon', 'Pork', 'Chicken']) );

输出如下

{Orange: "Chicken"}

最佳答案

等号不是比较,是赋值。 chineseFood 是一个对象,这意味着它可以像字典一样对待,并且可以使用 [] 运算符而不是 来访问它的属性。 运算符:

myObj = {
foo: "bar"
};
console.log(myObj["foo"]); // bar
console.log(myObj.foo); // bar

同样,你也可以这样分配属性:

myObj = {};
myObj["foo"] = 3;
console.log(myObj["foo"]); // 3
console.log(myObj.foo); // 3

这就是您的代码正在做的事情。它正在检索 array[array.length-1] 的值,即 "Chicken"。然后它将此值分配给 chineseFood 的属性,该属性的名称由 array[0] 表示,恰好是 "Orange" .因此,chineseFood 上名为 Orange 的属性被设置为 array[array.length - 1],这就是为什么 chineseFood 的计算结果为 {Orange: "Chicken"}

当您事先不知道要更改的属性的名称时,这种访问属性的方法特别有用,就像这段代码中的情况一样,或者当您想要创建具有其他名称的属性时是非法的:

myObj = {
".you can't usually use with spaces or start w/ periods": false
};
myObj[".you can't usually use with spaces or start w/ periods"] = true;
console.log(myObj[".you can't usually use with spaces or start w/ periods"]);
// there is no way to read this property the normal way

关于javascript - chineseFood[array[0]] = array[array.length-1];,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50869343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com