這是我在github 上發現的一個原生js挑戰項目,由于是js小白,希望通過這次的項目加深對js的理解
第七天跟第四天類似,都是些關于數組的操作
涉及的知識點
some()
every()
find()
findIndex()
splice()
slice()
some()和every()
some()是數組中是否有元素滿足所給出的條件,若有,則返回true
const isAdult = people.some(person => ((new Date()).getFullYear()) - person.year >= 19);
console.log({isAdult});
every()是數組中是否所有元素滿足所給出的條件,若全部滿足,則返回true
const allAdults = people.every(person => ((new Date()).getFullYear()) - person.year >= 19);
console.log({allAdults});
find()和findIndex()
find()有點像SQL里面的select語句,查找到滿足條件的值并返回,findIndex()是返回滿足條件元素的索引
const comment = comments.find(comment => comment.id === 823423);
const index = comments.findIndex(comment => comment.id === 823423);
splice()和slice()
這兩個函數是比較常用的函數,因此我們分析一下他們的參數和他們的不同之處
splice 的參數 :splice (start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
數組從 start下標開始,刪除deleteCount 個元素,并且可以在這個位置開始添加 n個元素
當start ,deleteCount 均為0 的時候,也就是在數組的最前面插入新的元素。
當 參數只有 start,deleteCount 就是從start 下標開始刪除deleteCount 個數組的元素,
當參數只有start參數時,就是刪除 從start下標起至最后 的元素
當參數 為負的時 則該參數規定的是從數組元素的尾部開始算起的位置 (-1 指的是 數組中倒數第一個元素, -2 指的是,數組中倒數第二個元素。)
slice 參數 : slice(start,end);
slice 方法,在string對象和array對象 的用法上類似。
對于數組對象來說,slice 方法提取 從 start下標起 以end下標 為結尾的 一段元素(但不包括end下標的元素),然后返回新的數組,對原數組沒有任何是影響,
當參數為負時 則該參數 是從 數組的末尾 索引 開始算起,(-1 指的是 數組中倒數第一個元素, -2 指的是,數組中倒數第二個元素。)
當參數為一個參數,當為一個參數時,提取 是以 start下標起 至末尾的 部分元素。
當start 為0 時, 等于說是 克隆一個新的數組,克隆后 兩個數組進行各自的操作,都互不影響
comments.splice(index, 1);
const newComments = [
...comments.slice(0, index),
...comments.slice(index + 1)
];
上面兩句的功能是一樣的,下面一句是把除要刪除元素之外的元素復制并合在一起,
...是ES6的擴展語法,方便兩個數組之間的拼接
以上就是我在day5中學到的知識,這里我同樣參考了soyaine的中文指南,感謝