分离Array JavaScript中的元素

时间:2013-04-03 17:22:18

标签: javascript arrays

我有一个根据用户点击来生成的数组来自各种问题和警告:

  

A队,球员1,黄牌,C1

每次事件发生时(足球比赛中)都会创建这种数组。比赛结束后,我想把这些事件中的每一个都放到我的数据库中。我想知道如何用;分隔数组的每个部分,以便爆炸的数组看起来像这样:

  

A队,球员1,黄牌,C1; B队,球员5,红色,S6

我创建第一个数组没有问题,只需要知道如何添加;我想知道这是否可能成为数组中的数组?

提前感谢

5 个答案:

答案 0 :(得分:0)

假设我理解你的问题:

我认为二维数组是实现你所追求的最简单的方法。您还可以查看创建对象并将这些对象放入数组中。看起来好像你这样做但我并不完全确定你的例子不是很有用。

答案 1 :(得分:0)

理想情况下,您应该将这些字符串推入数组,然后将它们推送到包含所有其他数组(2维数组)的数组:

示例:http://jsbin.com/ecoput/2/edit

var data = [["Team A","Player 1","Yellow","C1"],["Team B","Player 5","Red","S6"]]

在此之后,你应该join数组。

data.join(";");

这将导致:

"Team A,Player 1,Yellow,C1;Team B,Player 5,Red,S6"

答案 2 :(得分:0)

看到你的代码知道如何创建数组会很有帮助,但是你的最后一个语句可能是在正确的轨道上。听起来你需要一个关联数组,或者更好的是,某种类型的集合。这些数据代表什么?

A队的球员1获得了一张黄牌?什么是C1?如果您可以发布一些代码并解释您尝试捕获它的内容会更有帮助。

答案 3 :(得分:0)

从你的问题我猜你正在使用字符串,而不是实际的数组。

考虑使用对象数组,因为event是单个实体,而不是实体列表:

[{team:"Team A", player:"Player 1", type:"Yellow", code:"C1"}, 
 {team:"Team B", player:"Player 5", type:"Red", code:"S6"}]

将事件添加到对象数组的代码:

function addEvent(events, team, player, type, code) {
  events.push({team:team, player:player, type:type, code:code});
}

如果您需要将单个事件存储为数组:

[["Team A", "Player 1", "Yellow", "C1"], 
 ["Team B", "Player 5","Red", "S6"]]

您可以使用此代码将事件添加到“数组数组”:

function addEvent(events, team, player, type, code) {
  events.push([team, player, type, code]);
}

答案 4 :(得分:0)

也许以下内容可以解决您的问题(只要我理解正确):

var array = ["Team A", "Player 1", "Yellow", "C1", 
             "Team B", "Player 5", "Red", "S6"];

var result = "";
for ( var i = 0; i < array.length; i += 4) {
    result += array.slice(i, i+4).join(",");
    if ( i+4 < array.length ) result += ";";
}

console.log(result);
// prints: Team A,Player 1,Yellow,C1;Team B,Player 5,Red,S6;

稍后您可以使用split反转此操作:

var array2 = result.split(/,|;/);
// array == array2