这是我在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的中文指南,感谢