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));

10-07 19:20
查看更多