目录

  • 如何创建一个数组
  • 数组的类型转换与检测
  • 解构赋值及三点运算符(展开语法)
  • 数据出栈入栈操作
  • splice与slice实现数组的增删改查
  • 清空数组的多种操作
  • 拆分和合并
  • 数组的查找
    • includes方法的实现原理
    • find与findIndex新增方法
    • 循环操作方法
  • every与some
  • filter 过滤元素的使用
  • map and set
  • reduce方法
  • map和foreach遍历数组的区别
  • 数组去重的方法
  • Array.from的用法

如何创建一个数组

  • new Array()
  • Array.of()
//标准的定义
let arr=new Array("dxy",1,2,3);
//推荐使用
let arr=["dxy",1,2,3];//数组是一个对象,引用类型。
  • 数据创建的细节
    若要添加6这个元素
let arr=new Array(6);// 会创建6个空元素
let arr=Array.of(6);//可以将6这个元素加进去

数组的类型转换与检测

  • isArray()
//1.检测
Array.isArray();
//2.转换
let str=[1,2,3].toString();
let str=.String([1,2,3]);
let str=[1,2,3].join(" |");//用连接符将其转换成字符串
console.log(location.herf+"?id" + str);
// 其他类型转换为数组
let str="hhhxxxkkk"
str.split(",");
Array.from(str);//有length属性的元素可以由from转换为 数组let obj={name:"dxy",age:18,length:2  //必须加length才可使用
}
console.log(Array.from(obj));

解构赋值及三点运算符(展开语法)

注意:
...args用作传参,则吸星大法,吸收所有的参数值
若为赋值,则 表示将数组中的元素拿出来展开

//给一个对象或者数组直接赋值let arr=["dxy",18]//let name=arr[0];//let age=arr[1];let[name,age]=arr;console.log(name,age);//必须加声明let [name,age]=["dxy",18];console.log(name,age);//只想给age赋值let [,age]=["dxy",18];//...args用作传参,则吸星大法,吸收所有的参数值//若为赋值,则 表示将数组中的元素拿出来,展开// let [name,...args]=["dxy",18,'gaosan',34];// console.log(args);// let a=['zsh',...args];// console.log(a);//解构将值平均分给所定义的对象let [name,age=18]=["dxy"];console.log(age);

数据出栈入栈操作

  • push() // 向后追加
  • pop () // 从后弹出
  • -unshift () // 向前追加
  • shift() // 从前边弹出
  • fill()
  console.log([1,2,3].fill('dxy',1));//从第一个位置添加

splice与slice实现数组的增删改查

注意:slice不会改变原数组
splice会改变原数组

let ar=[d,c,b];
let var=arr.slice(1,2);//得到一个新数组从第一个数组开始截取2个let arr=[1,2,3,4,5];arr.splice(2,1);   //从下标2开始 删除一个console.log(arr);arr.splice(3,0,'dxy');//从中间下标为3的位置增加arr.splice(arr.length,0,7);//末尾增加   从最后一个位置开始,不删除任何东西,增加7  console.log(arr);arr.splice(0,3,"dxy","zsh");//替换   0-3替换为 dxy,zshconsole.log(arr);
  • 实战将一个数组中的元素从第一个位置移动到第三个位置
function move(array,from,to){if(from<0||to >=arry.length){console.log("参数错误")return ;}let newArray=[...array];let item=newArray.splice(from,1);newArray.splice(to,0,...item);return newArray;}let array=[1,2,3,4,5];console.log(move(array,1,3))

清空数组的多种操作

let arr=[1,2,3,4];
arr=[];
let arr1=arr; //浅拷贝
arr.length=0; //深拷贝
arr.splice(0,hd.length);
while(arr.pop()){}

拆分和合并

  • split()
  • join()
  • concat()
  • 三点运算符
  • 复制元素copyWithin
           let str="dxy,hhh";let str1=str.split(",");console.log(str1);let str2=str1.join("-");console.log(str2);let arr=[1,2,3,4,5];let arr2=["dxy","beauty"];let add=["w","c"]let arr3=arr2.concat(arr,add);console.log(arr3);arr=[...arr,...arr2];console.log(arr)//复制arr.copyWithin(2,0,2)  //复制到第二个位置,从0开始,到2结束 复制下标为0 ,1 的元素console.log(arr);

数组的查找

  • indexOf(左) 返回下标
  • lastIndexOf(右侧)返回-1 表示没找到
if (arr.indexOf(2)!=-1){console.log("找到了");
}
  • includes 返回ture or false
  • find 返回找到的值
  • findIndex 返回索引的位置
includes方法的实现原理
function includes(array,find){for(let value of array){if(value == find) return true;}return false;
}
let arr=[1,2,3,4,8];console.log(includes(arr,1))
find与findIndex新增方法
循环操作方法
  • forEach
  • iterator

every与some

filter 过滤元素的使用

let lesson=[
{title:"xxxx",category:"css"},
{title:"xxxx",category:"css"},
{title:"xxxx",category:"js"},
]
let cssLesson=lesson,filter(function(lesson){return lesson["category"]="css";
})console.log("cssLesson");

map and set

  • map不改变原数组
let arr=['hdcms','hhh'];
let arr1=arr.map(function(value,index,arr){value=`sss-${arr1}`
})

reduce方法

map和foreach遍历数组的区别

可参考了解更多

数组去重的方法

可参考https://blog.csdn.net/jiangwei1994/article/details/82992985

Array.from的用法

可参考https://blog.csdn.net/qq_27970999/article/details/78752110?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

  • 不会改变原来数组的有返回新数组
    concat()—连接两个或更多的数组,并返回结果。

every()—检测数组元素的每个元素是否都符合条件。

some()—检测数组元素中是否有元素符合指定条件。

filter()—检测数组元素,并返回符合条件所有元素的数组。

indexOf()—搜索数组中的元素,并返回它所在的位置。

join()—把数组的所有元素放入一个字符串。

toString()—把数组转换为字符串,并返回结果。
lastIndexOf()—返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

map()—通过指定函数处理数组的每个元素,并返回处理后的数组。

slice()—选取数组的的一部分,并返回一个新数组。

valueOf()—返回数组对象的原始值。

  • 会改变原来数组的有在原数组上操作
    pop()—删除数组的最后一个元素并返回删除的元素。

push()—向数组的末尾添加一个或更多元素,并返回新的长度。

shift()—删除并返回数组的第一个元素。

unshift()—向数组的开头添加一个或更多元素,并返回新的长度。

reverse()—反转数组的元素顺序。

sort()—对数组的元素进行排序。

splice()—用于插入、删除或替换数组的元素。

持续更新中

JavaScript中数组对象方法总结相关推荐

  1. JavaScript 中数组 sort() 方法的基本使用

    在日常的代码开发中,关于数组排序的操作可不少,JavaScript 中可以调用 sort 方法对数组进行快速排序. 今天,就数组的 sort 方法来学习一下,避免日后踩坑的悲惨遭遇. 概念 sort ...

  2. 创建健壮的isArray()函数(JavaScript中判断对象类型的种种方法)

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  3. 如何检查数组是否包含JavaScript中的对象?

    In this article, we will look at various methods to check if an array includes an object in JavaScri ...

  4. 如何从JavaScript中的对象数组中获得不同的值?

    本文翻译自:How to get distinct values from an array of objects in JavaScript? Assuming I have the followi ...

  5. java中字符串和数组如何比较_[Java教程]javascript中数组和字符串的方法比较

    [Java教程]javascript中数组和字符串的方法比较 0 2016-07-19 23:00:05 ×目录[1]可索引 [2]转换 [3]拼接[4]创建[5]位置 前面的话 字符串和数组有很多的 ...

  6. 检查值是否是JavaScript中的对象

    如何检查值是否是JavaScript中的Object? #1楼 尝试这个 if (objectName instanceof Object == false) {alert('Not an objec ...

  7. JavaScript比较数组的方法

    JavaScript比较数组的方法 1.比较两个对象数组,删除重复项,根据属性合并对象 我们确实需要比较两个不同的对象数组,并希望在两个对象匹配特定属性值的情况下合并这两个对象.可以使用filter( ...

  8. JavaScript中数组使用总结

    一. 数组的概念 1.1 什么是数组 数组是指的数据的有序列表. 数组中每个值称之为数组的一个元素. 数组中的每个元素都有一个位置,这个位置称之为索引(下标.index).数组的索引是从 0 开始的 ...

  9. name optimize is not defined 怎么解决_Web前端:怎么在JavaScript中比较对象?

    大家好,我来了,本期为大家带来的前端开发知识是"Web前端:怎么在JavaScript中比较对象?",有兴趣做前端的朋友,一起来看看吧! 比较JavaScript中的原始值很简单. ...

最新文章

  1. Ultrahaptics公司为Holodeck型触觉关闭了2300万美元的资金回合
  2. 【Caffe实践】基于Caffe的人脸检测实现
  3. 五天带你学完《计算机网络》·第一天·物理层
  4. 普中stm32开发板tftlcd显示图片_STM32实例TFTLCD介绍
  5. 二分搜索 HDOJ 2289 Cup
  6. Java基本数据类型及所占字节大小
  7. 哈佛博士主导的一桩勒索病毒离奇历史
  8. 微信支付JSAPI掉不起来支付按钮是什么原因?(原创)
  9. Java 线程池学习
  10. 《深入理解计算机系统》家庭作业
  11. 知识点篇:7)企业标准体系制定要求
  12. OpenCV利用高斯模糊可以实现毛玻璃的特效
  13. C# 判断文件/文件夹是否存在;
  14. size函数 matlab 含义,size()函数的使用
  15. 黑月教主工具脱水印_PS三种去水印方法简单粗暴!看完你就学会!
  16. 前端POST请求下载文件
  17. visio流程图添加连接点
  18. Arcgis应用(十二)栅格数据翻转(Flip)、镜像(Mirror)、重缩放(Rescale)、旋转(Rotate)、移位(Shift)、弯曲(Warp)
  19. 怎样运行一个php的项目,第一章 如何加载运行已发布的PHP项目
  20. Python调用阿里API进行车牌识别

热门文章

  1. 盘点个人喜欢的游戏 持续更新
  2. Linux标准IO定位函数,Linux C标准IO库函数详解 一
  3. 【流放之路-第二章】
  4. python如何声明多个变量_python – 更优雅的方式同时声明多个变量
  5. web项目怎么在服务器启动不了了,“无法启动IIS Express Web服务器”的解决办法
  6. [转贴]如何当好外贸SOHO族?
  7. 维修计算机起名字,电脑维修店起名,电脑维修店起名大全
  8. 计算机文化基础知识,1计算机文化基础-第一章计算机基础知识
  9. 如何在Ubuntu下安装五笔输入法
  10. linux哪个版本支持多线程,Linux是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。...