Есть ли в JavaScript поддержка указателя арифметики?Указатели массива в 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 нг-повторы следующим образом:
<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-повтору без ng-if), потому что я использую директиву ng-model, чтобы позволить пользователю обновлять массив, и, в свою очередь, услугу (это делается автоматически, поскольку массив был возвращен ссылкой из службы).
Следовательно, теоретически (идеал) должен иметь четыре указателя (каждый указывает на определенную часть массива) и передавать каждый указатель на ng-repeat с фильтром limitTo.
Нет, потому что он не использует указатели, как, что для памяти. (он использует указатели, но не таким образом, что поддерживает C-тип math на них) – Nikki9696
, что было бы хорошо, но что произойдет, оно будет преобразовано в строку –
. Однако она поддерживает индексы. Не знаете, почему вы не просто используете это? Или сплайсинг. – Nikki9696