已经很久没有写过文章了,其实也不是没有写,只是在写的过程中,产生了很多烂尾文。很多文章只写了个开头,却不知道后面该怎么写。今天带来一篇关于JS数组的相关总结,主要是针对数组的方法返回值是什么,是否改变原数组,是否产生新的数组,具体数组方法怎么使用及相关使用场景请点击这里。
语法 | 含义 | 返回值 | 改变原数组 | 是否产生新的数组 |
---|---|---|---|---|
Array.from() | 将一个类数组或可迭代对象转换为数组 | 返回一个新的数组 | - | 是 |
Array.isArray() | 判断一个对象是否为数组 | 返回一个布尔值 | - | 否 |
Array.of() | 创建一个具有可变数量参数的新数组 | 返回一个新数组 | - | 是 |
Array.concat() | 将数组和(或)值连接成新数组 | 返回一个新数组 | 否 | 是 |
Array.copyWithin(index, start, end) | 将数组从 start 到 end 位置的内容复制到 index | 返回修改后的数组 | 是 | 否 |
Array.entries() | 返回一个包含数组中每个索引和值的 Array Iterator 对象 | 返回数组的迭代器,包含数组的索引和值 | 否 | 否 |
Array.every() | 测试数组的所有元素是否都通过了指定函数的测试 | 返回一个布尔值 | 否 | 否 |
Array.fill(val, start, end) | 将从 start 到 end 位置的值用 val 填充 | 返回填充后的数组 | 是 | 否 |
Array.filter() | 返回通过所提供函数实现的测试的所有元素构成的新数组 | 返回一个新数组 | 否 | 是 |
Array.find() | 返回数组中满足提供的测试函数的第一个元素的值 | 返回原数组中满足条件的第一个值,不满足返回 undefined | 否 | 否 |
Array.findIndex() | 返回数组中满足提供的测试函数的第一个元素的索引 | 返回数组中满足条件的第一个值的索引,不满足返回 -1 | 否 | 否 |
Array.flat() | 将多维数组扁平化成一维数组 | 返回一个扁平化后的新数组 | 否 | 是 |
Array.flatMap() | 先按照 map 方法对数组的每一项进行操作,再做扁平化处理 | 返回一个扁平化后的新数组 | 否 | 是 |
Array.forEach() | 遍历数组并执行一次提供的函数 | 返回 undefined | 不一定,当数组中元素是值类型,forEach绝对不会改变数组;当是引用类型,则可以改变数组 | 否 |
Array.includes() | 用来判断一个数组是否包含一个指定的值 | 返回一个布尔值 | 否 | 否 |
Array.indexOf() | 返回在数组中可以找到一个给定元素的第一个索引 | 返回数组中满足条件的第一个值的索引,不满足返回 -1 | 否 | 否 |
Array.join() | 将数组或类数组对象以某符号分隔成一个字符串 | 返回一个字符串 | 否 | 否 |
Array.keys() | 返回一个包含数组中每个索引键的 Array Iterator 对象 | 返回数组的迭代器,里面包含索引 | 否 | 否 |
Array.lastIndexOf() | 返回在数组中可以找到一个给定元素的最后一个索引 | 返回数组中满足条件的最后一个值的索引,不满足返回 -1 | 否 | 否 |
Array.map() | 遍历数组并执行一次提供的函数 | 返回一个新数组 | 不一定,可以将返回结果赋值给原数组从而改变原数组的值 | 是 |
Array.pop() | 删除数组最后一个元素 | 返回最后一个元素的值 | 是 | 否 |
Array.push() | 在数组最后添加一个或多个元素 | 返回数组的长度 | 是 | 否 |
Array.reduce() | 对数组中的每个元素执行一个提供的 reducer 函数(升序执行),将其结果汇总为单个返回值 | 返回 reducer 函数处理的结果 | 否 | 不一定 |
Array.reduceRight() | 对数组中的每个元素执行一个提供的 reducer 函数(从后向前执行),将其结果汇总为单个返回值 | 返回 reducer 函数处理的结果 | 否 | 不一定 |
Array.reverse() | 将数组中元素的位置颠倒 | 返回颠倒后的数组 | 是 | 否 |
Array.shift() | 删除数组第一个元素 | 返回数组第一个元素的值 | 是 | 否 |
Array.slice(start, end) | 截取原数组从 start 到 end 位置的元素 | 返回一个新数组 | 否 | 是 |
Array.some() | 测试是否至少有一个元素通过由提供的函数实现的测试 | 返回一个布尔值 | 否 | 否 |
Array.sort() | 对数组进行排序 | 返回排序后的数组 | 是 | 否 |
Array.splice(start, deleteCount, val) | 从 start 位置开始删除 deleteCount 元素,并用 val 去替换 | 返回修改后的数组 | 是 | 否 |
Array.toLocaleString() | 数组中的元素将使用各自的 toLocaleString 方法转成字符串,并用逗号分隔 | 返回一个字符串 | 否 | 否 |
Array.toString() | 将数组中的内容按字符串形式返回 | 返回一个字符串 | 否 | 否 |
Array.unshift() | 在数组第一个位置添加一个或多个元素 | 返回数组的长度 | 是 | 否 |
Array.values() | 返回一个包含数组中每个索引值的 Array Iterator 对象 | 返回数组的迭代器,里面包含值 | 否 | 否 |
可以改变原数组的方法:
Array.copyWithin()
Array.fill()
Array.pop()
Array.push()
Array.reverse()
Array.shift()
Array.unshift()
Array.sort()
Array.splice()
不会改变原数组的方法:
Array.concat()
Array.entries()
Array.keys()
Array.values()
Array.every()
Array.some()
Array.filter()
Array.find()
Array.findIndex()
Array.flat()
Array.flatMap()
Array.includes()
Array.indexOf()
Array.lastIndexOf()
Array.join()
Array.reduce()
Array.reduceRight()
Array.toLocaleString()
Array.toString()
可能会改变 也可能不会改变原数组的方法
Array.forEach()
Array.map()
会产生新数组的方法
Array.from()
Array.of()
Array.concat()
Array.filter()
Array.flat()
Array.flatMap()
Array.map()
Array.reduce()
Array.reduceRight()
Array.slice()
本文只是一个简单的帮助记忆的资料,没有讲过多关于数组 API 的用法。想了解更多用法还是参考上面的链接,去看 MDN 官方的 JS 教程。如在文章中出现某些错误,也欢迎各位大佬在评论区留言指出。码字不易,请尊重作者版权,转载注明出处。
By BeLLESS 2019.03.14 23:36