资讯专栏INFORMATION COLUMN

数组

Anchorer / 2167人阅读

摘要:一维数组数组是按次序排列的一组值。每个值的位置都有编号从开始,整个数组用方括号表示。方法用于颠倒排列数组元素,返回改变后的数组该方法将改变原数组。方法对数组成员进行排序,默认是按照字典顺序排序。

一维数组

数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。

var arr = ["a", "b", "c"];

创建数组的方式

var arr = new Array(1,2,3);
var arr = Array(1,2,3);
var = [1,2,3];
二维数组

数组可以嵌套 一个数组可以作为一个元素被包含在另外一个数组里面 这就是二维数组

var arr=[[1,2,3],[4,5,6],[7,8,9]]

检测数组的方法

console.log(arr instanceof Array);


console.log(Object.prototype.toString.call(arr));

console.log(Array.isArray(arr));

转换方法
toString
把数组转换为字符串 并返回结果

var arr=[1,2,3,4,5];
console.log(arr.toString())    //1,2,3,4,5

valueOf
返回 Boolean 对象的原始值

var arr=[1,2,3,4,5];
console.log(arr.valueOf())  // [1,2,3,4,5]
数组的一些方法

push

push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度 该方法会改变原数组

var arr = [];

arr.push(1) // 1   --->数组长度
arr.push("a") // 2
arr.push(true, {}) // 4
arr // [1, "a", true, {}]

pop

pop方法用于删除数组的最后一个元素,并返回该元素 该方法会改变原数组
对空数组使用pop方法,不会报错,而是返回undefined

var arr = ["a", "b", "c"];

arr.pop() // "c"
arr // ["a", "b"]

shift

shift方法用于删除数组的第一个元素,并返回该元素 该方法会改变原数组

var a = ["a", "b", "c"];

a.shift() // "a"
a // ["b", "c"]

unshift

unshift方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度 该方法会改变原数组

var a = ["a", "b", "c"];

a.unshift("x"); // 4
a // ["x", "a", "b", "c"]
unshift方法可以接受多个参数,这些参数都会添加到目标数组头部。
var arr = [ "c", "d" ];
arr.unshift("a", "b") // 4
arr // [ "a", "b", "c", "d" ]

reverse

reverse方法用于颠倒排列数组元素,返回改变后的数组 该方法将改变原数组。

var a = ["a", "b", "c"];

a.reverse() // ["c", "b", "a"]
a // ["c", "b", "a"]

sort

sort方法对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变
sort方法不是按照大小排序,而是按照Unicode顺序 即数值会被先转成字符串,再按照Unicode顺序进行比较,所以101排在11的前面。

[11, 101].sort()
// [101, 11]
如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数。
[10111,1101,111].sort(function(a,b){
 return a-b;
})    //[111, 1101, 10111]

concat

concat方法用于多个数组的合并 它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变。

["hello"].concat(["world"])
// ["hello", "world"]

slice

slice方法用于提取目标数组的一部分,返回一个新数组,原数组不变。
arr.slice(start, end);
它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。如果省略第二个参数,则一直返回到原数组的最后一个成员。

var a = ["a", "b", "c"];

a.slice(0) // ["a", "b", "c"]
a.slice(1) // ["b", "c"]
a.slice(1, 2) // ["b"]

如果slice方法的参数是负数,则表示倒数计算的位置。

var a = ["a", "b", "c"];
a.slice(-2) // ["b", "c"]
a.slice(-2, -1) // ["b"]

-2表示倒数计算的第二个位置,-1表示倒数计算的第一个位置。

如果第一个参数大于等于数组长度,或者第二个参数小于第一个参数,则返回空数组

splice

splice方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素。该方法会改变原数组
splice的第一个参数是删除的起始位置(从0开始),第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素

var a = ["a", "b", "c", "d", "e", "f"];
a.splice(4, 2) // ["e", "f"]

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

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

相关文章

  • C语言进阶:指针的进阶

    摘要:本章节在此基础上,对语言阶段指针进行更深层次的研究。数组指针的类型由数组类型决定,先找出数组的类型去掉名就是类型。相当于数组指针所指向数组的数组名。数组指针指向整个数组,将其看作二维数组并解引用得到一行的首元素,从而遍历访问。 ...

    浠ラ箍 评论0 收藏0
  • 犀牛书——CHAP7:数组

    摘要:数组有以下特点无类型数组元素可以是任意元素。因此,当小于数组最大索引时,大于的数组元素会被删除。原数组不会改变将数组元素转换为字符串并连接在一起。默认将数组元素用,连接,传入的参数即为连接符。 showImg(https://box.worktile.com/view/fcfcdf2c99b14edfb6768085955ae253?pid=4b0845b09ca94218a955f8...

    Alfred 评论0 收藏0
  • JS基础06「数组

    摘要:为了维持此规则不变化,数组有两个特殊的行为。运算符对数组返回并且对于除了函数以外的所有对象都是如此。解决方案是检查对象的类属性,对数组而言该属 数组 数组是值的有序集合。每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。 JavaScript 数组是无类型的,数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型。数组的元素甚至也可能是对象或其他数组...

    forrest23 评论0 收藏0
  • JavaScript数组

    摘要:与稀疏数组对立的为密集数组,密集数组的索引会被持续的创建,并且其元素的数量等于其长度。创建一个长度为的数组,并初始化了个元素使用构造函数创建数组对象的时候,关键字是可以省略的。另外使用和删除元素是影响数组的长度的。 说明:本文只总结了JavaScript数组在web端的行为,不包括NodeJs端的行为。本文不涉及类型化数组(TypedArray)的讨论、总结。 一、什么是数组 数组的定...

    HtmlCssJs 评论0 收藏0
  • java知识体系梳理-->数组

    摘要:知识体系梳理流程图一维数组数组概述数组是指一组数据的集合,数组中的每个数据被称作元素。定义打印数组元素方法按照给定的格式打印题目分析通过观察发现,要实现按照指定格式,打印数组元素操作。按照这种方式,数组循环多圈以后,就完成了数组元素的排序。 知识体系梳理流程图 showImg(https://segmentfault.com/img/bVXwAi?w=902&h=652); 一维数组 ...

    james 评论0 收藏0
  • 《javascript高级程序设计》笔记_数组 稀疏数组数组

    摘要:数组是数据的有序列表,与其他语言不同的是,数组的每一项可以保存任何类型的数据。如下的代码创建的就是一个密集数组稀疏数组与密集数组相反,并不强制要求数组元素是紧密相连的,即允许间隙的存在。 数组是数据的有序列表,与其他语言不同的是,ECMAScript 数组的每一项可以保存任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二位置来保存数值,用第三个位置来保存对象, 以此类...

    pepperwang 评论0 收藏0

发表评论

0条评论

Anchorer

|高级讲师

TA的文章

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