在JavaScript中,刪除數組中的某個對象是一個非常常見的操作。這裡將從多個方面介紹如何在JavaScript中刪除數組中的某個對象。
一、js移除數組對象中的某個對象
JavaScript方法splice()可以從數組中添加或刪除元素,其中第一個參數表示所要執行的操作的起始位置,第二個參數表示要刪除的元素的數量。
let arr = [{name:"Tom", age:20}, {name:"Jerry", age:22}, {name:"Mike", age:18}]; let targetObj = {name:"Jerry", age:22}; let index = arr.indexOf(targetObj); if (index > -1) { arr.splice(index, 1); }
在上面的例子中,找到要刪除的對象的索引,如果存在則使用splice()方法刪除該對象。需要注意的是,使用indexOf()方法查找對象時,應該比較對象的屬性值而不是對象本身。
二、js刪除對象數組中某個對象
如果數組中的元素是對象,則可以使用filter()方法過濾掉需要刪除的對象。
let arr = [{name:"Tom", age:20}, {name:"Jerry", age:22}, {name:"Mike", age:18}]; let targetObj = {name:"Jerry", age:22}; arr = arr.filter(item => item !== targetObj);
在上面的例子中,使用filter()方法過濾掉需要刪除的對象,返回一個新的數組,再將其賦值給原數組。需要注意的是,當比較兩個對象時,應該比較對象的屬性值而不是對象本身。
三、js刪除數組中的指定元素
如果數組中的元素是基本數據類型,則可以使用splice()方法刪除數組中的指定元素。
let arr = [1, 2, 3, 4, 5]; let targetNum = 3; let index = arr.indexOf(targetNum); if (index > -1) { arr.splice(index, 1); }
在上面的例子中,使用indexOf()方法查找要刪除的元素的索引,如果找到了則使用splice()方法刪除它。
四、json數組中刪除某個對象
在JavaScript中,JSON數組實際上是包含對象的數組。我們可以使用filter()方法過濾掉需要刪除的對象。
let jsonArr = [{"name":"Tom", "age":20}, {"name":"Jerry", "age":22}, {"name":"Mike", "age":18}]; let targetObj = {"name":"Jerry", "age":22}; jsonArr = jsonArr.filter(item => JSON.stringify(item) !== JSON.stringify(targetObj));
在上面的例子中,使用JSON.stringify()方法將對象轉換為字符串進行比較,如果不相等則保留,最終返回一個新的數組並將其賦值給原數組。
五、js數組刪除數組中某個元素
如果數組中的元素是基本數據類型,則可以使用slice()方法將需要刪除的元素從數組中複製到新的數組中。
let arr = [1, 2, 3, 4, 5]; let targetNum = 3; let index = arr.indexOf(targetNum); let newArr = arr.slice(0, index).concat(arr.slice(index+1));
在上面的例子中,使用indexOf()方法查找要刪除的元素的索引,使用slice()方法將需要刪除的元素從數組中複製到新的數組中,最終得到一個不包含被刪除元素的新數組。
六、刪除數組對象中某個對象
如果數組中的元素是對象,則可以使用Array.prototype.filter()方法過濾掉需要刪除的對象。
let arr = [{name:"Tom", age:20}, {name:"Jerry", age:22}, {name:"Mike", age:18}]; let targetObj = {name:"Jerry", age:22}; arr = arr.filter(item => !Object.is(item, targetObj));
在上面的例子中,使用Array.prototype.filter()方法過濾掉需要刪除的對象,返回一個新的數組,再將其賦值給原數組。需要注意的是,不能直接比較兩個對象,應該使用ES6特性Object.is()進行比較。
七、總結
在JavaScript中,刪除數組中的某個對象有多種方法,可以根據不同的情況選擇不同的方法。如果數組中的元素是對象,則使用filter()方法過濾掉需要刪除的對象;如果是基本數據類型,則使用splice()方法刪除數組中的指定元素或使用slice()方法從數組中複製出不包含被刪除元素的新數組。無論是哪種方法,都需要先查找要刪除的對象或元素的索引。
原創文章,作者:HCET,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137720.html