Lir*_*Yeo 6 javascript ternary-operator ecmascript-6
const cond = false
const extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
]
const userInfo = [
{
z: 8
},
{
z: 10
},
...(cond && extraInfo)
]
Run Code Online (Sandbox Code Playgroud)
什么时候cond是真的,我想要额外的和用户信息.
如果cond为false,则仅需要userInfo.
问题是什么时候cond是假的,我明白了
TypeError :(中间值)(中间值)(中间值)[Symbol.iterator]不是函数
我的理解是,在这种情况下,我不允许使用布尔值作为扩展元素...false.
但...( cond ? extraInfo : {} )似乎也没有用.
到底是怎么回事?
gur*_*372 29
做吧
...(cond ? extraInfo : [])
Run Code Online (Sandbox Code Playgroud)
演示真实
var cond = true;
var extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
];
var userInfo = [
{
z: 8
},
{
z: 10
},
...(cond ? extraInfo : [])
];
console.log( userInfo );Run Code Online (Sandbox Code Playgroud)
用虚假演示
var cond = false;
var extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
];
var userInfo = [
{
z: 8
},
{
z: 10
},
...(cond ? extraInfo : [])
];
console.log( userInfo );Run Code Online (Sandbox Code Playgroud)
Pur*_*lex 17
有条件地将实体传播到对象
console.log(
{
name: 'Alex',
age: 19,
...(true && { city: 'Kyiv' }),
...(false && { country: 'Ukraine' })
}
)
// { name: 'Alex', age: 19, city: 'Kyiv' }
Run Code Online (Sandbox Code Playgroud)
有条件地将实体传播到Array
console.log(
[
'Dan',
'Alex',
...(true ? ['Robin'] : [])
]
)
// [ 'Dan', 'Alex', 'Robin' ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2695 次 |
| 最近记录: |