Как выбрать все другие значения в массиве, кроме i-го элемента? - программирование
Подтвердить что ты не робот

Как выбрать все другие значения в массиве, кроме i-го элемента?

У меня есть функция, использующая значение массива, представленное как

 markers[i]

Как я могу выбрать все остальные значения в массиве, кроме этого?

Целью этого является reset все другие изображения Карт Google в исходное состояние, но выделите новый, изменив изображение.

4b9b3361

Ответ 1

Используйте Array​.prototype​.splice чтобы получить массив элементов, исключая этот.

Это влияет на массив постоянно, поэтому, если вы этого не хотите, сначала создайте копию.

var origArray = [0,1,2,3,4,5];
var cloneArray = origArray.slice();
var i = 3;

cloneArray.splice(i,1);

console.log(cloneArray.join("---"));

Ответ 2

Вы можете использовать ECMAScript 5 Array.prototype.filter:

var items = [1, 2, 3, 4, 5, 6];
var current = 2;

var itemsWithoutCurrent = items.filter(function(x) { return x !== current; });

Вместо x !== current могут быть любые логики сравнения. Например, вы можете сравнить свойства объекта.

Если вы работаете с примитивами, вы также можете создать настраиваемую функцию типа except, которая представит эту функцию:

Array.prototype.except = function(val) {
    return this.filter(function(x) { return x !== val; });        
}; 

// Usage example:
console.log([1, 2, 3, 4, 5, 6].except(2)); // 1, 3, 4, 5, 6

Ответ 3

Вы можете использовать slice() Метод

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);

Метод slice() возвращает выбранные элементы в массиве как новый объект массива.