Domanda Come selezionare tutti gli altri valori in una matrice tranne l'elemento ith?


Ho una funzione che utilizza un valore di matrice rappresentato come

 markers[i]

Come posso selezionare tutti gli altri valori in un array tranne questo?

Lo scopo è di ripristinare tutte le altre immagini di Google Maps nel loro stato originale, ma evidenziane una nuova cambiando l'immagine.


18
2018-03-12 12:28


origine


risposte:


usa il metodo array.splice per ottenere una matrice di elementi escluso questo.

Questo influenza l'array in modo permanente, se non lo vuoi, crea prima una copia.

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

cloneArray.splice(i,1);

document.write(cloneArray.join("---"));

11
2018-03-12 12:30



È possibile utilizzare 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; });

Non ci possono essere logiche di confronto invece di x !== current. Ad esempio, puoi confrontare le proprietà dell'oggetto.

Se lavori con le primitive, puoi anche creare una funzione personalizzata come except che introdurrà questa funzionalità:

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

7
2018-02-17 11:44



Puoi usare slice() Metodo

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

Il metodo slice () restituisce gli elementi selezionati in un array, come un nuovo oggetto array.


4
2018-03-12 12:32