JavaScript是否以某种方式支持指针算术?
例如,我有数组
var arr = [1,2,3,4];
console.log(arr); /* this prints [1,2,3,4] */
是否可以做类似的事情:
var arr2 = arr + 2; /* obviously this is not the correct way */
console.log(arr2); /* this should have printed [3,4] */
而不创建数组的副本(我只需要一个指针,就像C一样)。
我需要这样做的具体原因如下:我有一个大数组,其中每个元素都是一对字符串,布尔值,例如
var arr = [['name1',true],['name2',false]];
我想将数组输入ng-repeat(我正在使用Angular JS)。该数组由数千个此类元素组成,并且来自服务/工厂(即通过引用返回)。我想在4列中显示数组的内容,并在每个字符串后带有一个复选框。为此,我通过以下方式获得了4个ng-repeats:
<div class="col-lg-3">
<div class="checkbox" ng-repeat="x in arr" ng-if="$index % 4 == 0">
<label><input type="checkbox" ng-model="x[1]">{{x[0]}}</label>
</div>
</div>
<div class="col-lg-3">
<div class="checkbox" ng-repeat="x in arr" ng-if="$index % 4 == 1">
<label><input type="checkbox" ng-model="x[1]">{{x[0]}}</label>
</div>
</div>
<div class="col-lg-3">
<div class="checkbox" ng-repeat="x in arr" ng-if="$index % 4 == 2">
<label><input type="checkbox" ng-model="x[1]">{{x[0]}}</label>
</div>
</div>
<div class="col-lg-3">
<div class="checkbox" ng-repeat="x in arr" ng-if="$index % 4 == 3">
<label><input type="checkbox" ng-model="x[1]">{{x[0]}}</label>
</div>
</div>
该方法非常慢,因为我需要遍历数组4次。
我无法对数组进行预处理(即,将其分成四个相等的大部分,无需ng-if就可以传递给每个ng-repeat),因为我使用ng-model指令允许用户更新数组,依次提供服务(此操作是自动完成的,因为该数组是通过引用从服务返回的)。
因此,(理论上)理想的情况是具有四个指针(每个指针指向数组的特定部分),并使用limitTo过滤器将每个指针传递给ng-repeat。
最佳答案
您是否要从控制台的某个位置打印阵列到最后?
var arr = [1,2,3,4];
console.log(arr);
console.log(arr.splice(2));