为什么';在Javascript中从数组拼接对象是否返回数组?

为什么';在Javascript中从数组拼接对象是否返回数组?,javascript,arrays,Javascript,Arrays,我有一组对象(比如一副牌): 以下似乎有效: var card = deck.pop(); var card = deck.shift(); (分别从甲板的“顶部”或“底部”拉动) 但是如果我想要一张中间的牌(比如说,如果这是一手牌) 对象似乎没有正确地分配给变量(所有内容都未定义)。我查找的所有内容都表明,splice应该返回我要删除的对象-我缺少了什么?试试看 var card = deck.splice(2,1)[0]; var card = deck.splice(2,1)[0];

我有一组对象(比如一副牌):

以下似乎有效:

var card = deck.pop();
var card = deck.shift();
(分别从甲板的“顶部”或“底部”拉动)

但是如果我想要一张中间的牌(比如说,如果这是一手牌)

对象似乎没有正确地分配给变量(所有内容都未定义)。我查找的所有内容都表明,splice应该返回我要删除的对象-我缺少了什么?

试试看

var card = deck.splice(2,1)[0];
var card = deck.splice(2,1)[0];
由于splice返回一个已删除元素的数组

返回一个可能已删除元素的数组,因此如果只删除一个元素,则仍然有一个数组。因此:

var card = deck.splice(2, 1)[0];
应返回一个包含已删除元素的数组。可获得实际元素,如下所示:

var card = deck.splice(2,1)[0];
与(即使是非常相似的环境:-)相同的错误:返回一个已删除元素的数组,而不是单个元素。因此,您需要获取该数组的第一个元素:

var card = deck.splice(2,1)[0];
var card = deck.splice(2,1)[0];