Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数组元素组合到新数组中?_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 如何将数组元素组合到新数组中?

Javascript 如何将数组元素组合到新数组中?,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,不熟悉Javascript(通常在Excel函数之外编写代码),希望有人能帮我指明正确的方向。我在网上搜索过,但没有找到明确的答案 我有两个数组——一个是星期几,另一个是人名和姓氏。我从包含人名的数组中随机选取一个索引号,并尝试将名字和姓氏分配给一天,然后将所有三个值放入一个新数组中。然后我将最后一个数组打印到HTML表中 包含日期的数组是一维的,只是从星期天到星期六。我认为,包含人名的数组实际上是二维的,包括他们的名字和姓氏 我通过硬编码第三个数组实现了这一点,但我想动态创建数组。我似乎无法让

不熟悉Javascript(通常在Excel函数之外编写代码),希望有人能帮我指明正确的方向。我在网上搜索过,但没有找到明确的答案

我有两个数组——一个是星期几,另一个是人名和姓氏。我从包含人名的数组中随机选取一个索引号,并尝试将名字和姓氏分配给一天,然后将所有三个值放入一个新数组中。然后我将最后一个数组打印到HTML表中

包含日期的数组是一维的,只是从星期天到星期六。我认为,包含人名的数组实际上是二维的,包括他们的名字和姓氏

我通过硬编码第三个数组实现了这一点,但我想动态创建数组。我似乎无法让array.push()方法按我所希望的方式工作,我希望有人愿意提供帮助

值得注意的是,我通过创建另一个数组来选择随机索引号,该数组选择0和人物数组长度之间的七个随机数。推送方法在这种情况下工作正常

我尝试过使用array.push()方法,但似乎无法按预期的方式工作。它要么返回一个空白值,要么看起来像jibberish,尽管我认为它是来自people数组的随机字母

//This is my working code.  The script tag is after the body elements because I need to create some of the body elements before I run the script.

 <body>        
    <table id="Week1Table" class="center">
        <tr>
            <th class="Week1">Week 1</th>
            <th class="Week1">First Name</th>
            <th class="Week1">Last Name</th>
        </tr>
    </table>

    <table id="Week2Table" class="center">
        <tr>
            <th class="Week2">Week 2</th>
            <th class="Week2">First Name</th>
            <th class="Week2">Last Name</th>
        </tr>
    </table>

    <script>            
        var people = [
            ["Andre", "the Giant"],
            ["Randy", "Savage"],
            ["Steve", "Austin"],
            ["The", "Rock"],
            ["Man", "Kind"],
            ["Steel", "Cage"],
            ["I", "Quit"]
        ];
        var week1schedule = [
            "Sunday",
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
        ];

        var week2schedule = week1schedule;

        var peoplePicker = []
        while(peoplePicker.length < week1schedule.length*2){
            var r = Math.floor(Math.random()*people.length);
            if(peoplePicker.indexOf(r) === -1) peoplePicker.push(r);
        };


//This is the final array, and the one that I would like to create dynamically rather than statically.

        var peopleRandomizerTable = [];
        peopleRandomizerTable[0] = week1schedule[0];
        peopleRandomizerTable[1] = people[peoplePicker[0]][0];
        peopleRandomizerTable[2] = people[peoplePicker[0]][1];
        peopleRandomizerTable[3] = week1schedule[1];
        peopleRandomizerTable[4] = people[peoplePicker[1]][0];
        peopleRandomizerTable[5] = people[peoplePicker[1]][1];
        peopleRandomizerTable[6] = week1schedule[2];
        peopleRandomizerTable[7] = people[peoplePicker[2]][0];
        peopleRandomizerTable[8] = people[peoplePicker[2]][1];
        peopleRandomizerTable[9] = week1schedule[3];
        peopleRandomizerTable[10] = people[peoplePicker[3]][0];
        peopleRandomizerTable[11] = people[peoplePicker[3]][1];
        peopleRandomizerTable[12] = week1schedule[4];
        peopleRandomizerTable[13] = people[peoplePicker[4]][0];
        peopleRandomizerTable[14] = people[peoplePicker[4]][1];
        peopleRandomizerTable[15] = week1schedule[5];
        peopleRandomizerTable[16] = people[peoplePicker[5]][0];
        peopleRandomizerTable[17] = people[peoplePicker[5]][1];
        peopleRandomizerTable[18] = week1schedule[6];
        peopleRandomizerTable[19] = people[peoplePicker[6]][0];
        peopleRandomizerTable[20] = people[peoplePicker[6]][1];
        peopleRandomizerTable[21] = week2schedule[0];
        peopleRandomizerTable[22] = people[peoplePicker[7]][0];
        peopleRandomizerTable[23] = people[peoplePicker[7]][1];
        peopleRandomizerTable[24] = week2schedule[1];
        peopleRandomizerTable[25] = people[peoplePicker[8]][0];
        peopleRandomizerTable[26] = people[peoplePicker[8]][1];
        peopleRandomizerTable[27] = week2schedule[2];
        peopleRandomizerTable[28] = people[peoplePicker[9]][0];
        peopleRandomizerTable[29] = people[peoplePicker[9]][1];
        peopleRandomizerTable[30] = week2schedule[3];
        peopleRandomizerTable[31] = people[peoplePicker[10]][0];
        peopleRandomizerTable[32] = people[peoplePicker[10]][1];
        peopleRandomizerTable[33] = week2schedule[4];
        peopleRandomizerTable[34] = people[peoplePicker[11]][0];
        peopleRandomizerTable[35] = people[peoplePicker[11]][1];
        peopleRandomizerTable[36] = week2schedule[5];
        peopleRandomizerTable[37] = people[peoplePicker[12]][0];
        peopleRandomizerTable[38] = people[peoplePicker[12]][1];
        peopleRandomizerTable[39] = week2schedule[6];
        peopleRandomizerTable[40] = people[peoplePicker[13]][0];
        peopleRandomizerTable[41] = people[peoplePicker[13]][1];  

        var table1 = document.getElementById("Week1Table");
        var table2 = document.getElementById("Week2Table");
        var peopleRandomizerCount = 0;


//This populates the two tables.  Two weeks; one table for each week.

        for(var rowCount = 0; rowCount < 7; rowCount++)
        {
        // create a new row
        var newRow = table1.insertRow(table1.length);
        for(var columnCount = 0; columnCount < 3; columnCount++)
            {
                // create a new cell
                var cell = newRow.insertCell(columnCount);

                // add value to the cell
                cell.innerHTML = peopleRandomizerTable[peopleRandomizerCount];
                cell.className = "people";
                peopleRandomizerCount++;
            }
        }

        for(var rowCount = 0; rowCount < 7; rowCount++)
        {
        // create a new row
        var newRow = table2.insertRow(table1.length);
        for(var columnCount = 0; columnCount < 3; columnCount++)
            {
                // create a new cell
                var cell = newRow.insertCell(columnCount);

                // add value to the cell
                cell.innerHTML = peopleRandomizerTable[peopleRandomizerCount];
                cell.className = "people";
                peopleRandomizerCount++;
            }
        }
    </script>
</body>
//这是我的工作代码。脚本标记位于body元素之后,因为我需要在运行脚本之前创建一些body元素。
第一周
名字
姓
第2周
名字
姓
var people=[
[“安德烈”,“巨人”],
[“兰迪”,“野蛮人”],
[“史蒂夫”,“奥斯汀”],
[“岩石”],
[“男人”,“善良”],
[“钢”、“笼”],
[“我”,“退出”]
];
var Week1时间表=[
“星期日”,
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”
];
var week2schedule=Week1 Schedule;
var peoplePicker=[]
while(peoplePicker.lengthlet people = [
            { 
              "firstName": "Andre", 
              "lastName": "the Giant"
            },
            { 
              "firstName": "Randy", 
              "lastName": "Savage"
             }
            ]