JavaScript 数组 API 返回值、是否改变原数组、是否产生新数组总结

已经很久没有写过文章了,其实也不是没有写,只是在写的过程中,产生了很多烂尾文。很多文章只写了个开头,却不知道后面该怎么写。今天带来一篇关于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

你可能感兴趣的:(JavaScript 数组 API 返回值、是否改变原数组、是否产生新数组总结)