gpt4 book ai didi

javascript - 使用扩展运算符有条件地推送到数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:13 25 4
gpt4 key购买 nike

我正在根据此处说明的条件将元素推送到数组 http://2ality.com/2017/04/conditional-literal-entries.html

const arr = [
...(cond ? ['a'] : []),
'b',
];

现在,这工作正常,但当我尝试时

const arr = [
...(cond && ['a']),
'b',
];

相反,它停止工作。

我想知道为什么它不再起作用,以及是否有一种方法可以使用扩展运算符和 && 而不是 ? 来有条件地推送。

谢谢

最佳答案

不,这是不可能的,因为所有可迭代对象都是真实的。

如果 cond 是假的,你有一个不能被 Symbol.iterator 扩展的值

The built-in types with a @@iterator method are:

var cond = false;

const arr = [
...(cond && ['a']), // throws error, function expected
'b',
];

console.log(arr);

关于javascript - 使用扩展运算符有条件地推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48783199/

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