Как выбрать все другие значения в массиве, кроме i-го элемента?
У меня есть функция, использующая значение массива, представленное как
markers[i]
Как я могу выбрать все остальные значения в массиве, кроме этого?
Целью этого является reset все другие изображения Карт Google в исходное состояние, но выделите новый, изменив изображение.
Ответы
Ответ 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() возвращает выбранные элементы в массиве как новый объект массива.