Array.isArray 说是假的
Array.isArray says to be false
我是 javascript 新手,目前正在学习解构。
我的问题在我编辑了一下的片段中。控制台说是数组,没想到应该是?
1:这怎么不是数组?
const heroes = [{
lol: ['l', 'Iron Man']
}]
const [lol, dc] = heroes;
console.log(Array.isArray(lol));
2:这个怎么是数组?
const heroes = {
lol: ['l', 'Iron Man']
}
const {lol, dc} = heroes;
console.log(Array.isArray(lol));
在第一个片段中,heroes
是一个数组。数组的第一个元素是对象
{
lol:['l', 'Iron Man' ]
}
解构赋值将 lol
设置为该元素,并将 dc
设置为 undefined
因为数组中没有第二个元素。上面的对象不是数组,所以Array.isArray(lol)
是false。
const heroes = [{
lol:['l', 'Iron Man' ]
}]
const [element1, element2 ] = heroes;
console.log(element1);
在第二个片段中,heroes
是一个对象。解构赋值将lol
设置为对象中lol
属性的值,即['l', 'Iron Man']
。它将 dc
设置为 dc
属性;因为这不存在,它被设置为 undefined. Since
lolis set to an array,
Array.isArray(lol)` is true.
如果要将 lol
设置为第一个片段中的数组,则需要另一层嵌套。
const heroes = [{
lol:['l', 'Iron Man' ]
}]
const [{lol, dc}] = heroes;
console.log(Array.isArray(lol));
因为您尝试使用 []
解构的第一个示例用于解构数组,但是 {} 将用于解构对象
所以在你的情况下,你应该首先使用 []
解构数组,然后在 {}
中解构对象
const heroes = [{
lol:['l', 'Iron Man' ]
}]
const [{lol, dr}] = heroes;
console.log(lol)
console.log(Array.isArray(lol));
in const [lol, dc ] = heroes lol 是一个对象 {lol:['l', 'Iron Man' ]}
in const {lol, dc } = heroes lol 是一个数组 ['l', 'Iron Man' ]
我是 javascript 新手,目前正在学习解构。 我的问题在我编辑了一下的片段中。控制台说是数组,没想到应该是?
1:这怎么不是数组?
const heroes = [{
lol: ['l', 'Iron Man']
}]
const [lol, dc] = heroes;
console.log(Array.isArray(lol));
2:这个怎么是数组?
const heroes = {
lol: ['l', 'Iron Man']
}
const {lol, dc} = heroes;
console.log(Array.isArray(lol));
在第一个片段中,heroes
是一个数组。数组的第一个元素是对象
{
lol:['l', 'Iron Man' ]
}
解构赋值将 lol
设置为该元素,并将 dc
设置为 undefined
因为数组中没有第二个元素。上面的对象不是数组,所以Array.isArray(lol)
是false。
const heroes = [{
lol:['l', 'Iron Man' ]
}]
const [element1, element2 ] = heroes;
console.log(element1);
在第二个片段中,heroes
是一个对象。解构赋值将lol
设置为对象中lol
属性的值,即['l', 'Iron Man']
。它将 dc
设置为 dc
属性;因为这不存在,它被设置为 undefined. Since
lolis set to an array,
Array.isArray(lol)` is true.
如果要将 lol
设置为第一个片段中的数组,则需要另一层嵌套。
const heroes = [{
lol:['l', 'Iron Man' ]
}]
const [{lol, dc}] = heroes;
console.log(Array.isArray(lol));
因为您尝试使用 []
解构的第一个示例用于解构数组,但是 {} 将用于解构对象
所以在你的情况下,你应该首先使用 []
解构数组,然后在 {}
中解构对象
const heroes = [{
lol:['l', 'Iron Man' ]
}]
const [{lol, dr}] = heroes;
console.log(lol)
console.log(Array.isArray(lol));
in const [lol, dc ] = heroes lol 是一个对象 {lol:['l', 'Iron Man' ]} in const {lol, dc } = heroes lol 是一个数组 ['l', 'Iron Man' ]