javascript - 在Javascript中将数组分为两部分

标签 javascript arrays for-loop while-loop

我有一个包含 N 个元素的数组。我想分成两个数组。唯一的条件是第一个新数组由原始数组的前三个元素组成,第二个新数组必须包含所有其他元素。 例如,原始数组包含["a","b","c","d","e","f","g","h"]。我想创建两个新数组:

first new array: ["a, "b", "c"];
second new array: ["d","e","f", "g","h"].

但是我的代码将原始数组划分了很多时间。为什么?

function MyCtrl($scope) {
$scope.strengthChartData = ["Banana", "Orange", "Apple", "Mango", "asd", "lol", "ahhhaha", "llllll", "ehhehehe", "oooo", "aaaaa", "bbbbbbbb"];

$scope.arrays = [];
var size = 3;

while ($scope.strengthChartData.length > 0)
    $scope.arrays.push($scope.strengthChartData.splice(0, size));
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="MyCtrl">
    <h3>All elements:</h3>
    <br>
    <ul>
        <li ng-repeat="array in arrays">{{array}}</li>
    </ul>
    
    <h3>First array:</h3>
    <br>
    <ul>
        <li ng-repeat="array in arrays[0]">{{array}}</li>
    </ul>

    <h3>Second array:</h3>
    <br>
    <ul>
        <li ng-repeat="array in arrays[1]">{{array}}</li>
    </ul>
</div>

最佳答案

您可以使用splice() 为此

var arr = ["a", "b", "c", "d", "e", "f", "g", "h"],
  arr1 = arr.splice(3);

document.write(JSON.stringify(arr) + '<br/>' + JSON.stringify(arr1));


更新:如果您不想更新原始数组,则 创建新数组并应用 splice() 或使用 slice()

使用 slice()

var arr = ["a", "b", "c", "d", "e", "f", "g", "h"],
  arr1 = arr.slice(0, 3);
arr2 = arr1.slice(3);

document.write(JSON.stringify(arr) + '<br/>' +
  JSON.stringify(arr1) + '<br/>' +
  JSON.stringify(arr2));


使用 splice() slice() 不带任何参数复制所有元素

var arr = ["a", "b", "c", "d", "e", "f", "g", "h"],
  arr1 = arr.slice();
arr2 = arr1.splice(3);

document.write(JSON.stringify(arr) + '<br/>' +
  JSON.stringify(arr1) + '<br/>' +
  JSON.stringify(arr2));

关于javascript - 在Javascript中将数组分为两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36310578/

相关文章:

javascript - 使用 for() 克隆 JavaScript

javascript - 如何在 jQuery 中停止/暂停和重新播放栏动画

javascript - 将 Php 数组传递给外部 Javascript 文件

javascript - 使用 "formvalidation.io"验证动态输入字段

javascript - 暂停引导轮播的事件

c# - 结束 for 循环的适当条件是什么?

javascript - 如何分隔数组值

javascript - 如何找到数组中缺失值的索引?

数组中的 PHP 最短/最长字符串长度

javascript - 通过数组和 for 循环自学算法基础知识。为什么这个 for 循环不起作用