次のように表される配列値を使用する関数があります
markers[i]
これ以外の配列内の他のすべての値を選択するにはどうすればよいですか?
これの目的は、他のすべてのGoogleマップ画像を元の状態にリセットし、画像を変更して新しい画像を強調表示することです。
次のように表される配列値を使用する関数があります
markers[i]
これ以外の配列内の他のすべての値を選択するにはどうすればよいですか?
これの目的は、他のすべてのGoogleマップ画像を元の状態にリセットし、画像を変更して新しい画像を強調表示することです。
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("---"));
ECMAScript5を使用できます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
フィルタで2番目のコールバックパラメータを使用することもできます。
const exceptIndex = 3;
const items = ['item1', 'item2', 'item3', 'item4', 'item5'];
const filteredItems = items.filter((value, index) => exceptIndex !== index);
あなたは slice()
方法を使うことができます
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
スライス()メソッドは、配列内の選択された要素を新しい配列オブジェクトとして返します。
これを行う別の方法は、filterおよびsliceArrayメソッドを使用することです。
let array = [ 1, 2, 3, 4, 5, 6 ];
let leave = 2;
// method 1
console.log(array.filter((e,i) => i !== leave));
// logs [1, 2, 4, 5, 6];
//method 2
console.log([...array.slice(0, leave), ...array.slice(leave+1, array.length)]);
// logs [1, 2, 4, 5, 6];
この関数は、指定されたインデックスの要素を除くすべての要素を含む新しい配列を返します。
const everythingBut = (array, i) => { /*takes an array and an index as arguments*/
let notIArray = []; /*creates new empty array*/
let beforeI = array.slice(0, i); /*creates subarray of all elements before array[i]*/
let afterI = array.slice(i+1,); /*creates subarray of all elements after array[i]*/
notIArray = [...beforeI, ...afterI]; /*add elements before and after array[i] to empty array*/
return notIArray; /*returns new array with array[i] element excluded*/
};
例えば:
let array = [1, 2, 4, 7, 9, 11, 2, 6]
everythingBut(array, 2); /*exclude array[2]*/
// -> [1, 2, 7, 9, 11, 2, 6]
ECMAScript5を使用
const array = ['a', 'b', 'c'];
const removeAt = 1;
const newArray = [...array].splice(removeAt, 1);