资讯专栏INFORMATION COLUMN

聊聊在javascript中数组的使用

zone / 548人阅读

摘要:在中,数组里可以容纳容纳中任何类型的值。方法大全在中数组是可修改的对象,每个数组都有着很多好用的方法,大多数我们日常都会常用。把元素添加到数组的头部。利用使用下标进行操作。对当前数组中的每一项运行给定的函数返回函数结果为的项组成的数组。

杂谈

    数组是最简单的内存数据结构,也是js中最常用的类型之一,整理了下我觉得应该了解数组的相关知识。

在js中,数组里可以容纳容纳js中任何类型的值。

在声明数组后就可以向数组中插入值,不需要设定什么。

数组的大小是动态的,可以根据数据的增加而自动增长。

js只支持一维数组,并不支持矩阵(二维数组)。但是,我们可以通过数组嵌套,实现矩阵或任意多维数组。

数组的项数就保存在它的length属性中,这个属性的值始终会大于等于0,并且length属性并不是只读属性,通过使用length可以对数组进行修改操作。

判断一个对象是不是数组,Array.isArray( ) ES5新增

方法大全

在js中数组是可修改的对象,每个数组都有着很多好用的方法,大多数我们日常都会常用。
1.创建数组

使用Array的构造函数 new Array( )
new操作符可以省略

    let newArr = new Array()

数组字面量表示法
由[]表示,内含数组项

    let newArr = []

2.添加元素

push() 把元素添加到数组的末尾。

unshift() 把元素添加到数组的头部。

splice() 向/从数组中添加/删除项目,然后返回。

利用length 使用下标 进行操作。

3.删除元素

delete操作符、下标 不改变数组长度只会把下标记值置为undefined。

splice() 向/从数组中添加/删除项目,然后返回 同上添加。

4.其它常用方法

concat() 连接多个数组并且将结果返回为一个新的数组。

forEach() 对当前数组中的每一项运行给定的函数。

indexOf() 返回第一个与给定参数相等结果的数组元素的索引,如果没有找到则返回结果是 -1。

map() 对当前数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组。

every() 对当前数组中的每一项运行给定的函数,如果函数每一项返回的都是ture,则返回true。

filter() 对当前数组中的每一项运行给定的函数,返回函数结果为true的项组成的数组。

join() 将数组中所有的元素拼接成一个新的字符串。

lastIndexOf() 返回在数组中搜索到的与给定参数相等的元素结果里的索引最大的值。

reverse() 颠倒数组中元素的顺序,原先第一个执行后会成为最后一个。

let newArr = [1, "a", 2, "b"];
console.log(newArr.join(";"));
newArr.forEach(function(item, index) {
  console.log("item: "+ item + " " + "index: " + index);
})
console.log(newArr.indexOf("a"));
let strArr = newArr.filter(function(item) {
  if(typeof(item) === "string") {
    return true;
  }
})
console.log(strArr);
console.log(strArr.reverse());

使用字符串的方法str.split() 可以返回字符串转化为数组的结果。

结尾

js数组也可以表现的像栈和队列一样的数据结构,实现相应的行为,感兴趣的可以去研究下。

栈和队列简介
    栈是一种遵从后进先出 (LIFO) 原则的有序集合。新添加的或待删除的元素都保存在栈的 末尾,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。
队列是遵循FIFO (First In First Out,先进先出,也称为先来先服务) 原则的一组有序的项。 队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。

参考资料:
    js高级程序设计 js数据结构与算法

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110240.html

相关文章

  • 聊聊javascript数组

    摘要:数组定义数组数组名称元素元素定义空数组前端定义数组同时添加不同类型的元素构造函数方式数组名称元素,元素数组名称类型,表示数组的长度存在元素的个数用创造出一个空数组的构造函数前端用创造一个空数组的构造函数并添加元素函数方式定义数组名称元素,元 数组 定义数组 1.var 数组名称 = [元素1,元素2,...]; var arr=[];//定义空数组 var arr1=[100,前端,t...

    Towers 评论0 收藏0
  • 聊聊jQuery反模式

    摘要:如果我们认为模式代表一个最佳的实践,那么反模式将代表我们已经学到一个教训。受启发于的设计模式,在年的月的报告大会上首次提出反模式。参考链接反模式学用设计模式极客学院 如果我们认为模式代表一个最佳的实践,那么反模式将代表我们已经学到一个教训。受启发于Gof的《设计模式》,Andrew Koeing在1995年的11月的C++报告大会上首次提出反模式。在Koeing的报告中,反模式有着两...

    CoderStudy 评论0 收藏0
  • 聊聊 Array

    摘要:原文翻译疯狂的技术宅本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章类型检测假设是一个数组,我们想要实现一些功能。将为数组返回,即使它们是在另一个中创建的。本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章 原文:https://jakearchibald.com/201...翻译:疯狂的技术宅 本文首发微信公众号:jingchengyideng欢迎关注,每天都...

    songze 评论0 收藏0
  • 聊聊柯里化

    摘要:举个例子,如果我们实现一个三个数的加法函数,需要这么实现如果我们将其柯里化变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数,我们的调用方式应该是这样的。 仅以此文献给我的学弟 誅诺_弥 ,并将逐风者的祝福送给他:英雄,愿你有一份无悔的爱情! 什么是柯里化 维基百科中有如下定义: 在计算机科学中,柯里化(英语:Currying),是把接受多个参数的函数变换成接受一...

    yankeys 评论0 收藏0
  • 聊聊ES7与ES8特性

    摘要:我曾写过一篇关于博客个最佳特性,这次我打算聊聊和特性。自从年双十一正式上线,累计处理了亿错误事件,得到了金山软件百姓网等众多知名用户的认可。 译者按: 转眼ES6发布2年了,是时候了解一下ES7与ES8特性了! 原文: ES7 and ES8 Features 译者: Fundebug 为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有...

    fxp 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<