【发布时间】:2016-07-18 13:25:56
【问题描述】:
我有一个包含 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>
【问题讨论】:
-
在可能的情况下避免使用 while 条件 - 除非您对可能无限期地在后台运行的东西感到满意。如果某件事可以通过有限周期解决,那通常是更好的方法。
标签: javascript arrays for-loop while-loop