javascript - 按顺序组合数组 JavaScript

标签 javascript jquery arrays

我有几个数组,我试图按特定顺序组合它们。例如,假设我有三个数组:

var arrayOne = [1a, 1b, 1c];
var arrayTwo = [2a, 2b, 2c];
var arrayThree [3a, 3b, 3c];

我怎样才能得到这样的东西?

var combinedArray = [1a, 2a, 3a, 1b, 2b, 3b, 1c, 2c, 3c] 

编辑

好的,我要在这里为我的故事添加更多内容,因为我已经从每个人那里得到了一些很好的回应和答案。也许这会更清楚。我有一个 SharePoint 列表,我从中获取所有信息。我正在使用 SPServices 从列表中获取我的数据。我还获取了每个列表项的版本历史记录并将它们放入数组中,这样我就可以将数据从 SPServices 循环中提取出来,并在 SharePoint 内容之外使用它,这样我就可以尝试按需要对其进行排序和显示。 (请不要将此移动到 SharePoint )。 这一切都必须在运行时发生。所以这是第一部分。我正在为我的每个列表项声明全局变量:

var proModified6 = new Array();
var proHistory = new Array();
var assignedTo = new Array();
var startDate = new Array();
var endDate = new Array();
var status = new Array();
var project = new Array();
var history = new Array();


var listItems = new Array();


var regex = new RegExp("");

var i = 0;

然后我用 SharePoint 列表信息填充数组(我不打算将它们全部放入,但每个都有一个像这样的调用)

$().SPServices({
  operation: "GetVersionCollection",
      async: false,
      webURL: "http://devchrisl01/test",
      strlistID: "NewProjects",
      strlistItemID: proID[i],
      strFieldName: "Title",         

      completefunc: function (xdata, Status) {

        $(xdata.responseText).find("Version").each(function() {

       //alert(xdata.responseXML.xml);

       var xitem = $(this);
            var ID = xitem.attr('ID');
            var Project = xitem.attr('Title');
            var Modified = xitem.attr('Modified').split('T')[0];
            var ModifiedTime = xitem.attr('Modified').substring(11, 19);
           //var modifiedUl = "<td><b>" + Modified + " " + ModifiedTime + "</b></td>";
  //$('#versionList'+i+'').append(modifiedUl);

                  project.push(Project);
                  proModified2.push(Modified + ModifiedTime)


    // just looking at my data here not really part of my problem       
var data = "<tr><td><b>" + Modified + " " + ModifiedTime + "</b></td><td>" + Project + "</td></tr>";


$('#versionList'+i+'').append(data);

        });  

      }

});

之后是我的问题发挥作用的地方。我正在取回我需要的所有数据。除了为每个信息使用一个数组之外,我还没有找到更好的方法来存储所有列表信息并将其从 SPServices 中提取出来。关键是我不知道会有多少阵列或多长时间。最终这将是动态的。 (痛苦的屁股 )所以这里是数组:

var modifiedDate = [proModified1, proModified2, proModified3, proModified4, proModified5, proModified6];
var projectHistory = [history];
var projectTitle = [project];
var projectAssignedTo = [assignedTo];
var projectStartDate = [startDate];
var projectEndDate = [endDate];
var projectStatus = [status];

每一个都不一样。每个用户的数量也不会相同。我刚刚将我的列表设为静态以首先构建。列表动态将是另一个问题:0

是否有办法像我在简单示例中所要求的那样处理这些数组?看看我为什么先简单一点,哈哈。

最佳答案

编辑:更新了比较器,因为 Salmon 指出它应该返回 -101

试试下面,

var arrayOne = ["1a", "1b", "1c"];
var arrayTwo = ["2a", "2b", "2c"];
var arrayThree = ["3a", "3b", "3c"];

var combinedArray = arrayOne
    .concat(arrayTwo, arrayThree) //Concatenate the array.. can add any number of arrays
    .sort(function(a, b) { //Custom comparator for your data
       var a1 = a.charAt(1);
       var b1 = b.charAt(1);

       if (a1 == b1) return 0;
       if (a1 < b1) return -1;
       return 1;
    });

注意:自定义比较器函数是非常特定于您的数据的。根据需要更新函数。

DEMO

关于javascript - 按顺序组合数组 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304896/

相关文章:

javascript - JSON 对象数组,用于 knockout 具有 Observable 属性的 Observable 数组

javascript - $watchCollection() 嵌套数组

java - 检查 java 字符串中的字符数是否正确

javascript - 检查本地存储值是否等于

javascript - 本地网络上的 Mobile Phonegap 应用程序

jquery - 我怎么知道正确的 HTML 代码是什么样的

php - 将 datetimepicker 插件格式化为 jQuery datepicker 以在 MySQL 中使用

javascript - 如何将 requireJs 与 vertx 结合使用?

javascript - 如何通过 Javascript 更新 Firebase 元素?

linux - 循环遍历带空格的字符串数组