當(dāng)我們處理JSON數(shù)組時(shí),有時(shí)需要?jiǎng)h除其中的一些元素。ES6提供了許多新的方法來(lái)使這個(gè)過(guò)程更加簡(jiǎn)便。下面,我將介紹一些常見(jiàn)的ES6方法來(lái)刪除復(fù)雜JSON數(shù)組數(shù)據(jù)。
首先,我們可以使用filter()方法。這個(gè)方法可以用一個(gè)回調(diào)函數(shù)來(lái)過(guò)濾我們不需要的元素。回調(diào)函數(shù)需要返回一個(gè)布爾值,如果返回true,那么元素會(huì)被保留。否則就被刪除了。
let arr = [{id:1,name:"John"},{id:2,name:"Tom"},{id:3,name:"Alice"}]; let newArr = arr.filter(item=>{ return item.id !== 2; //刪除id=2的元素 }); console.log(newArr); //[{id:1,name:"John"},{id:3,name:"Alice"}]
另外,我們也可以使用splice()方法。這個(gè)方法可以從數(shù)組中刪除元素,并返回被刪除的元素。它接受兩個(gè)參數(shù),第一個(gè)參數(shù)代表要?jiǎng)h除的元素的起始位置,第二個(gè)參數(shù)代表要?jiǎng)h除的元素的個(gè)數(shù)。
let arr = [{id:1,name:"John"},{id:2,name:"Tom"},{id:3,name:"Alice"}]; let index = arr.findIndex(item=>item.id === 2); //尋找id=2的元素位置 let newArr = arr.splice(index,1); //從數(shù)組中刪除id=2的元素,并返回刪除的元素 console.log(newArr); //{id:2,name:"Tom"} console.log(arr); //[{id:1,name:"John"},{id:3,name:"Alice"}]
最后,我們可以使用map()方法。這個(gè)方法可以創(chuàng)建一個(gè)新的數(shù)組,它的元素是原數(shù)組的元素按照某種規(guī)則進(jìn)行轉(zhuǎn)換后的結(jié)果。我們可以在map()方法中調(diào)用filter()方法來(lái)進(jìn)行復(fù)雜的篩選操作。
let arr = [{id:1,name:"John"},{id:2,name:"Tom"},{id:3,name:"Alice"}]; let newArr = arr.map(item=>{ if(item.id === 2){ //刪除id=2的元素 return null; } return item; }).filter(item=>item !== null); //去掉null元素,即刪除的元素 console.log(newArr); //[{id:1,name:"John"},{id:3,name:"Alice"}]
總之,ES6提供了很多強(qiáng)有力的方法來(lái)刪除復(fù)雜JSON數(shù)組數(shù)據(jù)。我們可以根據(jù)具體的需求選用適合的方法來(lái)解決問(wèn)題。