2017-03-28 20 views
-1

javascriptの配列から要素を削除しますか?

var arr = ["cat", "dog", "bear", "cat", "bird", "dog", "dog","cat"]; 
 
arr.remove("cat", "dog"); 
 
console.log(arr);

私は、文字列「猫」と「犬」を削除したいが、私は彼らに、結果で一度だけを印刷したいです。誰でも助けてくれますか?

+1

だから、重複を削除したい、または一度だけの猫と犬の値を削除し、その後、他の重複を残しますか? – Randy

+0

私は重複を削除したい – Sai

答えて

0

フィルタ機能を使用します。

var arr = ["cat", "dog", "bear", "cat", "bird", "dog", "dog","cat"]; 
 
arr = arr.filter(function(item, pos) { 
 
    return arr.indexOf(item) == pos; 
 
}); 
 
console.log(arr);

0

Array objectにはremove()メソッドがありません。 要素のインデックスを取得し、削除してからsplice() methodを使用する必要があります。

const arr = ["cat", "dog", "bear", "cat", "bird", "dog", "dog","cat"]; 
 
const toRemove = ["cat", "dog"]; 
 

 
console.log('before', arr); 
 

 
toRemove.forEach(item => { 
 
    const itemPosition = arr.indexOf(item); 
 
    arr.splice(itemPosition, 1); 
 
}); 
 

 
console.log('after', arr);

あなたは配列をユニークにしたい場合は、次の操作を行うことができます:

const arr = ["cat", "dog", "bear", "cat", "bird", "dog", "dog","cat"]; 
 

 
uniqueArray = arr.filter(function(item, pos, self) { 
 
    return self.indexOf(item) == pos; 
 
}) 
 

 
console.log(uniqueArray);

+0

犬は結果で2回繰り返されますか? – Sai

+0

ああ、複数の要素があるのを見ていませんでした。それがオプションの場合、最初に配列をユニークにする必要があります。 – dschu

+0

これは、この場所のためのものですね。 – dschu

0

/** 
 
* Takes an array of primitive values and returns a list with unique values 
 
* 
 
* @param {(string[] | number[] | boolean[])} arr 
 
* @param {boolean} [preserve=false] 
 
* @returns 
 
*/ 
 
function uniqueArray(arr, preserve) { 
 
    if (preserve === void 0) { 
 
    preserve = true; 
 
    } 
 
    //Handle preservation of original array 
 
    var newArr; 
 
    if (preserve === true) { 
 
    newArr = arr.slice(0); 
 
    } else { 
 
    newArr = arr; 
 
    } 
 
    //Loop through array, from lowest to highest index 
 
    for (var a = 0; a < newArr.length; a++) { 
 
    //Loop through remainder of array based on index a 
 
    for (var b = a + 1; b < newArr.length; b++) { 
 
     //If values are the same 
 
     if (newArr[a] === newArr[b]) { 
 
     //Remove this index in the array 
 
     newArr.splice(b, 1); 
 
     //Offset b index to handle the rearranged array 
 
     b--; 
 
     } 
 
    } 
 
    } 
 
    //Return unique array 
 
    return newArr; 
 
} 
 
//TEST 
 
var arr = ["cat", "dog", "bear", "cat", "bird", "dog", "dog", "cat"]; 
 
console.log(uniqueArray(arr));

関連する問題