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)
]
当cond
为真时,我想要额外的和用户信息。
当cond
为false时,只需要userInfo。
问题是当cond
是假的时候,我明白了
TypeError :(中间值)(中间值)(中间值)[Symbol.iterator]不是函数
我的理解是我不允许使用布尔值作为扩展元素,在本例中为...false
。
但...( cond ? extraInfo : {} )
似乎也没有用。
到底是怎么回事?
做吧
...(cond ? extraInfo : [])
演示真实
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 );
用虚假演示
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 );
其他方式:
cond是真的:
var extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
]
var cond = true;
var userInfo = [
{
z: 8
},
{
z: 10
},
...(cond && extraInfo || [])
]
console.log(userInfo);
cond是假的:
var extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
]
var cond = false;
var userInfo = [
{
z: 8
},
{
z: 10
},
...(cond && extraInfo || [])
]
console.log(userInfo);
const extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
];
const userInfo = [
{
z: 8
},
{
z: 10
},
];
const cond = true;
let getMyValue = cond ? [].concat(extraInfo, userInfo) : userInfo;
console.log(getMyValue)
let getMyValue = cond ? [].concat(extraInfo, userInfo) : userInfo;
让我们检查一下
const extraInfo = [
{
a: 11,
b: 25
},
{
a: 12,
b: 34
},
{
a: 1,
c: 99
}
];
const userInfo = [
{
z: 8
},
{
z: 10
},
];
const cond = false;
let getMyValue = cond ? [].concat(extraInfo, userInfo) : userInfo;
console.log(getMyValue)