私はそのような配列を定義しました:
var myArray = {myNewArray: ['string1' , 'string2' , 'string3']};
配列を反復処理して、特定の文字列値に一致する要素を削除したいと思います。これを達成するためのjQuery/javascriptのクリーンな方法はありますか?
または、各要素を反復処理し、その値を確認し、その値が比較対象の文字列imと一致する場合は、そのIDを取得し、そのIDを使用して配列から削除する必要がありますか?
私はそのような配列を定義しました:
var myArray = {myNewArray: ['string1' , 'string2' , 'string3']};
配列を反復処理して、特定の文字列値に一致する要素を削除したいと思います。これを達成するためのjQuery/javascriptのクリーンな方法はありますか?
または、各要素を反復処理し、その値を確認し、その値が比較対象の文字列imと一致する場合は、そのIDを取得し、そのIDを使用して配列から削除する必要がありますか?
var strings = ['a', 'b', 'c', 'd'];
document.write('initial data: ' + strings);
var index = 0;
var badData = 'c';
for(index = 0; index < strings.length; index++)
{
if(strings[index] == badData)
{
strings.splice(index, 1);
}
}
document.write('<br>final data: '+ strings);
JavaScript配列にはindexOf
、要素を検索してsplice
から削除するために使用できるメソッドがあります。例えば:
var myNewArray = ['A', 'B', 'C'];
var toBeRemoved = 'B';
var indexOfItemToRemove = myNewArray.indexOf(toBeRemoved);
if (indexOfItemToRemove >= 0) {
myNewArray.splice(indexOfItemToRemove, 1);
}
そのコードが実行された後、myNewArray
は['A', 'C']
です。
Array.filterを使用できます。
filteredArray = myArray.myNewArray.filter(function(el){
return el === "string";
});
Kangaxの互換性テーブルで互換性を確認できます。
を使用して配列をフィルタリングできます$.grep
var myArray = {myNewArray: ['string1' , 'string2' , 'string3']};
myArray = { myNewArray: $.grep(myArray.myNewArray,function(val){
return val !== "string1";
})};
//console.log(myArray);
my newARR = oldArr.splice( $.inArray( removeItem , oldArr ) , 'deleteThisString');