我想知道是否有一种方法可以解构分配给变量的数组,然后将该值传递给同一行中的另一个解构的变量。请在下面查看我打算做什么:
const { prop } = [a] = chips.filter(x => x.id == 1);
通常,我会用下面两行代码来做到这一点:
const [a] = chips.filter(x => x.id == 1);
const { prop } = a;
我可以单行吗?
答案 0 :(得分:2)
当然,只需将{ prop }
放在a
当前所在的位置:
const [{ prop }] = chips.filter(x => x.id == 1);
const chips = [
{ id: 1, prop: 'foo'},
{ id: 1, prop: 'bar'},
{ id: 1, prop: 'baz'}
];
const [{ prop }] = chips.filter(x => x.id === 1);
console.log(prop);
(请注意,如果可能,您也可以考虑与===
进行严格的相等比较)
但是,如果您只想使用数组中的第一个匹配元素,则更适合使用.find
而不是.filter
,因为{{1} }返回找到的元素,而.find
返回一个数组(您实际上并没有使用):
filter