JavaScript数组常用方法总结及使用详解
方法简介
JavaScript中的数组是一种非常重要的数据类型,它提供了许多方法来处理和操作数组数据。下面是一些常用的JavaScript数组方法:
push(): 向数组末尾添加一个或多个元素,并返回新的数组长度。
pop(): 从数组末尾删除一个元素,并返回删除的元素。
shift(): 从数组开头删除一个元素,并返回删除的元素。
unshift(): 向数组开头添加一个或多个元素,并返回新的数组长度。
slice(): 从数组中复制一部分元素,并返回一个新的数组。
splice(): 在数组中添加或删除元素,并返回被删除元素的数组。
concat(): 连接两个或多个数组,并返回一个新的数组。
join(): 把数组中的所有元素转换为字符串,并用指定的分隔符分隔,返回字符串。
reverse(): 反转数组中元素的顺序,并返回反转后的数组。
sort(): 对数组元素进行排序,并返回排序后的数组。
indexOf(): 返回指定元素在数组中第一次出现的位置,如果不存在则返回-1。
lastIndexOf(): 返回指定元素在数组中最后一次出现的位置,如果不存在则返回-1。
filter(): 过滤数组中的元素,并返回符合条件的元素组成的新数组。
map(): 对数组中的每个元素进行操作,并返回一个新数组。
reduce(): 从左到右对数组中的元素进行操作,并返回一个值。
方法详解
1.push
push() 该方法向数组的末尾添加一个或多个元素,并返回新的数组长度。它的语法如下:arr.push(element1[, element2[, ...[, elementN]]])
let fruits = ['apple', 'banana', 'orange'];
let length = fruits.push('grape', 'pear');
console.log(fruits); // ["apple", "banana", "orange", "grape", "pear"]
console.log(length); // 5
2.pop()
该方法从数组的末尾删除一个元素,并返回删除的元素。它的语法如下:arr.pop()
let fruits = ['apple', 'banana', 'orange'];
let lastFruit = fruits.pop();
console.log(fruits); // ["apple", "banana"]
console.log(lastFruit); // "orange"
3.shift()
该方法从数组的开头删除一个元素,并返回删除的元素。它的语法如下:arr.shift()
let fruits = ['apple', 'banana', 'orange'];
let firstFruit = fruits.shift();
console.log(fruits); // ["banana", "orange"]
console.log(firstFruit); // "apple"
4.unshift()
该方法向数组的开头添加一个或多个元素,并返回新的数组长度。它的语法如下:arr.unshift(element1[, element2[, ...[, elementN]]])
let fruits = ['apple', 'banana', 'orange'];
let length = fruits.unshift('grape', 'pear');
console.log(fruits); // ["grape", "pear", "apple", "banana", "orange"]
console.log(length); // 5
5.slice()
该方法从数组中复制一部分元素,并返回一个新的数组。它的语法如下:arr.slice([begin[, end]])
let fruits = ['apple', 'banana', 'orange', 'grape', 'pear'];
let slicedFruits = fruits.slice(1, 4);
console.log(slicedFruits); // ["banana", "orange", "grape"]
6.splice()
该方法在数组中添加或删除元素,并返回被删除元素的数组。它的语法如下:arr.splice(start[, deleteCount[, item1[, item2[, ...]]]])
let fruits = ['apple', 'banana', 'orange', 'grape', 'pear'];
let removedFruits = fruits.splice(2, 2, 'kiwi', 'mango');
console.log(fruits); // ["apple", "banana", "kiwi", "mango", "pear"]
console.log(removedFruits); // ["orange", "grape"]
7.concat()
该方法连接两个或多个数组,并返回一个新的数组。它的语法如下:arr.concat(array1[, array2[, ...[, arrayN]]])
let fruits1 = ['apple', 'banana', 'orange'];
let fruits2 = ['grape', 'pear'];
let allFruits = fruits1.concat(fruits2);
console.log(allFruits); // ["apple", "banana", "orange", "grape", "pear"]
8.join()
该方法把数组中的所有元素转换为字符串,并用指定的分隔符分隔,返回字符串
let fruits = ['apple', 'banana', 'orange'];
let joinedFruits = fruits.join(', ');
console.log(joinedFruits); // "apple, banana, orange"
9.indexOf()
该方法返回数组中第一个找到的指定元素的索引,如果没找到则返回-1。它的语法如下:arr.indexOf(searchElement[, fromIndex])
let fruits = ['apple', 'banana', 'orange'];
let index = fruits.indexOf('banana');
console.log(index); // 1
10.lastIndexOf()
该方法返回数组中最后一个找到的指定元素的索引,如果没找到则返回-1。它的语法如下:arr.lastIndexOf(searchElement[, fromIndex])
let fruits = ['apple', 'banana', 'orange', 'banana'];
let index = fruits.lastIndexOf('banana');
console.log(index); // 3
11.includes()
该方法返回一个布尔值,表示数组是否包含指定元素。它的语法如下:arr.includes(searchElement[, fromIndex])
let fruits = ['apple', 'banana', 'orange'];
let hasBanana = fruits.includes('banana');
console.log(hasBanana); // true
12.forEach()
该方法对数组中的每个元素执行指定的操作。它的语法如下:arr.forEach(callback(currentValue[, index[, array]])[, thisArg])
let fruits = ['apple', 'banana', 'orange'];
fruits.forEach(function(fruit, index) {console.log(index + ": " + fruit);
});
// 0: apple
// 1: banana
// 2: orange
13.map()
该方法创建一个新数组,其中的元素是对原数组中的每个元素应用指定的操作后的结果。它的语法如下:arr.map(callback(currentValue[, index[, array]])[, thisArg])
let numbers = [1, 2, 3];
let doubledNumbers = numbers.map(function(number) {return number * 2;
});
console.log(doubledNumbers); // [2, 4, 6]
14.filter()
该方法创建一个新数组,其中的元素是原数组中符合指定条件的元素。它的语法如下:arr.filter(callback(currentValue[, index[, array]])[, thisArg])
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(number) {return number % 2 == 0;
});
console.log(evenNumbers); // [2, 4]
15.reduce()
该方法对数组中的元素逐个执行指定的操作,返回一个累积的结果。它的语法如下:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
let arr = [1, 2, 3, 4, 5];// 删除 reduce 的初始值(没有 0)
let result = arr.reduce((sum, current) => sum + current);alert( result ); // 15
题尾
分享今天学的一首诗
月夜
唐 杜甫
今夜鄜州月,闺中只独看。
遥怜小儿女,未解忆长安。
香雾云鬟湿,清辉玉臂寒。
何时倚虚幌,双照泪痕干。
这首诗借看月而抒离情,但抒发的不是一般情况下的夫妇离别之情。字里行间,表现出时代的特征,离乱之痛和内心之忧熔于一炉,对月惆怅,忧叹愁思,而希望则寄托于不知“何时”的未来。
JavaScript数组常用方法总结及使用详解相关推荐
- JavaScript 数组中的 indexOf 方法详解
最近项目遇到一个小问题代码我会简化成小例子展示给大家. 用心看到最后会有收获哈,基础扎实的童鞋可以直接跳到数组类型使用. 说到 indexOf 大家并不陌生,判断字符串是否包涵子字符串时特别常用(正则 ...
- JavaScript 面试中常见算法问题详解
JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...
- html+css+javascript实现小游戏2048(详解,附源代码)
html+css+javascript实现小游戏2048(详解,附源代码) 1.上下左右的移动原理相同,这里只详细说明向上移动的方法 2.这里的上下左右由wasd四个键控制 3-小方块空的意思就是没数 ...
- python数组相减_对Python 中矩阵或者数组相减的法则详解
对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...
- js some every数组方法的区别与详解
js some every数组方法的区别于详解 前言 一.some方法 二.every() 方法 总结 前言 在开发中对数组数据的常规操作我们会经常遇到一些必要的操作 例如:要检测数组中的元素是否满足 ...
- python画二维散点图-基于python 二维数组及画图的实例详解
1.二维数组取值 注:不管是二维数组,还是一维数组,数组里的数据类型要一模一样,即若是数值型,全为数值型 #二维数组 import numpy as np list1=[[1.73,1.68,1.71 ...
- php 打印对象详细信息,php打印显示数组与对象的函数详解
php打印显示数组与对象的函数详解 发布于 2014-11-17 18:55:49 | 699 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext P ...
- php中this的使用技巧,JavaScript中this关键字使用方法详解
JavaScript中this关键字使用方法详解 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了 ...
- 数组,异质结构以及指针的详解
数组,异质结构以及指针的详解 前言 昨天看了一部韩国电影,老千2,看到凌晨5点,不过发现韩国的棒子们确实养眼,女的贼拉漂亮,还有大尺度哦~ 咱们上一次分析了过程(方法)的实现,其中精妙的栈帧占据了首要 ...
最新文章
- MySQL双机热备部署
- SCCM2012R2之二安装SQL Server
- 公司电脑用域账号访问团队文件夹
- 关于项目管理的一些想法
- SQL Server 2005 高级程序设计 学习笔记(2)
- linux中mac地址路径,MAC地址
- virtualenv 安装不同版本的虚拟环境的办法
- [链表]同时遍历两个链表
- 华为设备堆叠原理和配置
- 基于嵌入式linux路由转发功能的实现
- Android应用程序组件Content Provider的启动过程源代码分析(5)
- Easyrecovery激活码生成器下载地址?
- 玩转树莓派——游戏主机模拟器
- Compass的模块介绍
- 镁光ddr3布线规则_讨论一下DDR3 缓存的电压和频率
- Android6.0 Qualcomm Atheros QCA6174A WiFi Model Support
- 22. 关于定时任务指定的时间间隔内没有完成任务的处理
- npm ------ npm 安装删除命令(rimraf)删除本地依赖包
- android使用动画画心形,Android中利用画图类和线程画出闪烁的心形,送给亲爱的他(她)...
- 5G无线技术基础自学系列 | 双工技术