将数组推入Javascript中的队列或堆栈是否可行?

时间:2016-06-27 16:30:24

标签: javascript arrays queue

我知道我可以将整数或字符放入队列或堆栈中但是如何推送整个数组呢?

var stack = [];
stack.push(2);       // stack is now [2]
stack.push(5);       // stack is now [2, 5]
var i = stack.pop(); // stack is now [2]
alert(i);            // displays 5

var queue = [];
queue.push(2);         // queue is now [2]
queue.push(5);         // queue is now [2, 5]
var i = queue.shift(); // queue is now [5]
alert(i);              // displays 2

假设我有从客户端发送到服务器的数据,需要存储它们以便稍后释放它们。我发送了三个字段,用户名消息头像

示例:

['simon','this is a message','avatar.png']

['Muray','this is another message','avatar2.png']

这两个数组应该发送到服务器,并在需要时弹出整个数组。

1 个答案:

答案 0 :(得分:1)

是的,您可以在JavaScript中将整个数组推入/弹出数组。

例如:

var a = [];
a.push([1, 2, 3, 4]);
a.pop(); // yields [1, 2, 3, 4]

在你的例子中,你会这样做:

var a = [];
a.push(['simon','this is a message','avatar.png']);
a.push(['Muray','this is another message','avatar2.png']);

您还可以一步定义嵌套数组:

var a = [
  ['simon','this is a message','avatar.png'],
  ['Muray','this is another message','avatar2.png']];

如果您要将其发送到服务器,您可能希望JSON使用JSON.stringify对其进行编码,如下所示:

JSON.stringify(a);

哪会产生包含

的字符串
  

[[" simon","这是一条消息"," avatar.png"],[" Muray",&# 34;这是另一条消息"," avatar2.png"]]