gpt4 book ai didi

javascript - 在 if () 运算符中使用 &&

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

我的一个 friend 给我写了一些代码(不幸的是他现在无法访问),我正在尝试理解它。

const people = [
{name: 'morgan', group: 3},
{name: 'courtney', group: 1},
{name: 'brian', group: 1},
{name: 'dog', group: 2}
]

const partitionedPeople = sortedPeople.reduce(
(parts, person) => {
const part = parts[0]

if (part && person.group === part.group) {
console.log('found part.group')
} else {
console.log('did not find part.group')
}
return parts;
},
[]
);

我不明白的是if (part && person.group === part.group) {}

如果我将其更改为 if (person.group === part.group) {} 我会收到错误。

因为通过第一次迭代,part 未定义(空列表中的第一项),我要求它查找未定义的 .group,这是有道理的。

但是,当添加 (part && person.group === part.group) 时,它工作得很好。

part && person.group 正在做什么才能使该功能正常工作?

最佳答案

&& 运算符的工作原理如下:

  • 如果第一个操作数为,则返回第二个操作数
  • 如果第一个操作数是,则返回第一个操作数

这里,如果 partundefined (这是假的),则表达式的计算结果为 undefined (因为返回了第一个操作数)。 undefined 为假,因此 if 主体不会被执行。

如果 part 已定义并且为真,则 并且只有这样 && 才会评估第二个操作数,该操作数比较 person.group part.group 并返回比较结果。

在 JavaScript 中,除了 false0""null 之外,所有内容都是 true >未定义NaN

关于javascript - 在 if () 运算符中使用 &&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44987981/

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