14 种 JavaScript 数组方法(8 分钟内)
你知道我有一份新闻通讯吗?📬
如果您想在我发布新博客文章或发布重大项目公告时收到通知,请访问https://cleancodestudio.paperform.co/
[14 个 JS 数组方法(8 分钟内)截屏视频]
let stocks = [
{ name: 'Apple', price: 321.85 },
{ name: 'Tesla', price: 2471.04 },
{ name: 'Disney', price: 118.77 },
{ name: 'Google', price: 1434.87 },
{ name: 'Netflix', price: 425.92 }
]
数组.过滤器
filter() 方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
stocks.filter(stock => stock.price < 1000)
/*-------------------------------------------
| Array.filter
*-------------------------------------------
| 0: {name: "Apple", price: 321.85}
| 1: {name: "Disney", price: 118.77}
| 2: {name: "Netflix", price: 425.92}
*/
数组.map
map() 方法创建一个新数组,其中填充了对调用数组中每个元素调用提供的函数的结果。
stocks.map(stock => [stock.name, stock.price])
/*-------------------------------------------
| Array.map
*-------------------------------------------
| 0: (2) ["Apple", 321.85]
| 1: (2) ["Tesla", 2471.04]
| 2: (2) ["Disney", 118.77]
| 3: (2) ["Google", 1434.87]
| 4: (2) ["Netflix", 425.92]
*/
数组查找
find() 方法返回数组中第一个满足指定测试函数的元素值。如果没有满足测试函数的值,则返回 undefined。
stocks.find(stock => stock.name === 'Tesla')
/*-------------------------------------------
| Array.find
*-------------------------------------------
| {name: "Tesla", price: 2471.04}
*/
数组.some
some() 方法测试数组中是否至少有一个元素通过了所提供函数实现的测试。如果在数组中找到一个元素,且所提供函数的测试结果为 true,则返回 true;否则返回 false。该方法不会修改数组。
stocks.some(stock => stock.price < 1000)
/*-------------------------------------------
| Array.some
*-------------------------------------------
| true
*/
stocks.some(stock => stock.price < 10)
/*-------------------------------------------
| Array.some
*-------------------------------------------
| false
*/
数组.every
every() 方法测试数组中的所有元素是否通过了所提供函数实现的测试。它返回一个布尔值。
stocks.every(stock => stock.price < 1000)
/*-------------------------------------------
| Array.every
*-------------------------------------------
| false
*/
stocks.every(stock => stock.price < 2500)
/*-------------------------------------------
| Array.every
*-------------------------------------------
| true
*/
数组.forEach
forEach() 方法对每个数组元素执行一次提供的函数。
stocks.forEach(stock => console.log(stock))
/*-------------------------------------------
| Array.forEach
*-------------------------------------------
| Outputs each item (stock object) from the array to the console
| returns void (aka undefined)
*/
数组.reduce
reduce() 方法对数组的每个元素执行一个 reducer 函数(由您提供),从而生成单个输出值。
stocks.reduce((total, stock) => total + stock.price, 0)
/*-------------------------------------------
| Array.reduce
*-------------------------------------------
| 4772.45
*/
let names = ['Apple', 'Tesla', 'Disney', 'Google', 'Netflix']
数组.includes
includes() 方法确定数组的条目中是否包含某个值,并根据情况返回 true 或 false。
names.includes('Apple')
/*-------------------------------------------
| Array.includes
*-------------------------------------------
| true
*/
names.includes('Microsoft')
/*-------------------------------------------
| Array.includes
*-------------------------------------------
| false
*/
数组.indexOf
indexOf() 方法返回数组中给定元素的第一个索引,如果不存在则返回 -1。
names.indexOf('Tesla')
/*-------------------------------------------
| Array.indexOf
*-------------------------------------------
| 1
*/
names = ['Apple', 'Tesla', 'Disney', 'Google', 'Netflix', 'Tesla']
数组.lastIndexOf
lastIndexOf() 方法返回数组中指定元素的最后一个索引,如果不存在则返回 -1。数组将从 fromIndex 开始向后搜索。
names.lastIndexOf('Tesla')
/*-------------------------------------------
| Array.lastIndexOf
*-------------------------------------------
| 5
*/
数组排序
sort() 方法对数组元素进行排序并返回排序后的数组。默认排序顺序为升序,首先将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列。
由于排序取决于实现,因此无法保证其时间和空间复杂度。
names.sort()
/*-------------------------------------------
| Array.sort
*-------------------------------------------
| ['Apple, 'Disney', 'Google', 'Netflix', 'Tesla', 'Tesla']
*/
数组切片
slice() 方法将数组的一部分内容浅拷贝至一个新数组对象,该新数组对象从起始位置到结束位置(不包括结束位置),起始位置和结束位置代表数组中元素的索引。原始数组不会被修改。
names.slice(3)
/*-------------------------------------------
| Array.slice
*-------------------------------------------
| ['Netflix', 'Tesla', 'Tesla']
|
*/
数组.join
join() 方法通过连接数组(或类数组对象)中的所有元素来创建并返回一个新字符串,这些元素之间用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,则返回该元素时不使用分隔符。
names.join()
/*-------------------------------------------
| Array.join
*-------------------------------------------
| "Apple,Disney,Google,Netflix,Tesla,Tesla"
*/
names.join(' - ')
/*-------------------------------------------
| Array.join
*-------------------------------------------
| "Apple - Disney - Google - Netflix - Tesla - Tesla"
*/
names.join('\\')
/*-------------------------------------------
| Array.join
*-------------------------------------------
| "Apple\Disney\Google\Netflix\Tesla\Tesla"
*/
数组转字符串
toString() 方法返回表示指定数组及其元素的字符串。
names.toString()
/*-------------------------------------------
| Array.toString
*-------------------------------------------
| "Apple,Disney,Google,Netflix,Tesla,Tesla"
*/
stocks = [
{ name: 'Apple', price: 321.85 },
{ name: 'Tesla', price: 2471.04 },
{ name: 'Disney', price: 118.77 },
{ name: 'Google', price: 1434.87 },
{ name: 'Netflix', price: 425.92 }
]
stocks.toString()
/*-------------------------------------------
| Array.toString
*-------------------------------------------
| "[object Object],[object Object],[object Object],[object Object],[object Object]""
*/
你知道我有一份新闻通讯吗?📬
如果您想在我发布新博客文章或发布重大项目公告时收到通知,请前往
鏂囩珷鏉ユ簮锛�https://dev.to/cleancodestudio/14-must-know-js-array-methods-in-8-minutes-38c9