数组(Array)常用的操作方法

作者: 取个帅气的名字真好 | 来源:发表于2018-03-18 22:20 被阅读15次

Array对象是用于构造数组的全局对象。

创建数组


var person = [1,2,3]
console.log(person.length)
//3

var b = Array(1,2,3,4,)
console.log(b.length)
//4

访问数组和赋值

//通过下标访问,下标从0开始。
var person = [1,2,3]
person[0]  // 1
person[1]  // 2
person[2]  // 3

person[2]  = 30  // 赋值
person  //1,2,30

person.length = 0  //清空数组
console.log(person)  //[]

遍历数组

//item 值 
//index 下标
//array 数组
var person = [1,2,3]
person.forEach(function(item,index,array){
console.log(item,index)
})
// 1 0
// 2 1
// 3 2

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

var a = [1,2,3]
a.push(5) //添加5到数组末尾,结果返回长度 4

console.log(a)  //[1,2,3,5]

pop()删除数组末尾的元素

var a = [1,2,3]
a.pop()  //3
console.log(a) //[1,2]

shift()删除数组头部的元素

var a = [1,2,3]
a.shift() //1
console.log(a)//[2,3]

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

var a = [1,2,3]
a.unshift(4) //4
console.log(a) //[4,1,2,3]

indexOf()找出某个元素在数组中的索引

var a = [1,2,3,4,5,6,7,9]
a.indexOf(4) //3

splice()从下标M开始向右删除N个元素,且在下标M添加新元素(可选)。

var a = [1,2,3,4,5,6,7]
a.splice(2,3,999) //[3,4,5]
console.log(a) // [1,2,999,6,7]

slice() 复制数组。从下标M开始带下标N结束(不包括下标N),作为一个新数组。原数组不变。

var a = [1,2,3,4] 
var b = a.slice(1,3)

a //[1,2,3,4]
b //[2,3]

concat()连接两个或更多的数组,并返回结果。被连接的数组不变。

var a = [1,2,3]
var b = [4,5,6]
var c = a.concat(b)  

console.log(a) // [1,2,3]
console.log(b) // [4,5,6]
console.log(c) // [1,2,3,4,5,6]

reverse() 将数组逆序。会改变原数组。

var a = [1,2,3]
var b = a.reverse()

console.log(a) // [3,2,1]
console.log(a) // [3,2,1]
a === b //true

sort()对数组进行排序。
1、没有参数会按字母表升序排序。
2、自定义函数
3、如果含有undefined会被排到最后面,对象元素则会调用其toString方法。

var a=[5,4,3,2,1]
a.sort()
console.log(a) //[1, 2, 3, 4, 5]

var a=[7,8,9,10,11]
a.sort()
console.log(a) //[10, 11, 7, 8, 9]

因为按照字母表排序,7就比10大了

自定义函数:

 var a = [7,8,9,10,11]

    a.sort(function(v1,v2){
        return v1-v2
    })
    console.log(a) //[7, 8, 9, 10, 11]

    var users = [
        {
            name: 'aaa',
            age: 21
        },
        {
            name: 'baa',
            age: 18
        },
        {
            name: 'abc',
            age: 24
        }
    ]

    // 按age 从小到大排序
    var sortByAge = users.sort(function(v1, v2){
        return  v1.age > v2.age
    })
//[{name: 'baa',age: 18},{ name: 'aaa',age: 21},{ name: 'abc',age: 24}]

  // 按name从大到小排序
    var sortByName = users.sort(function(v1, v2){
        return  v1.name > v2.name
    })
//[{name: "aaa", age: 21},{name: "abc", age: 24},{name: "baa", age: 18}]

toString() 把数组转换成字符串

var a = [1,2,3,4]
a.toString()
//"1,2,3,4"

split()将一个String对象分割成字符串数组。

var a ="1234"
a.split("")
//["1","2","3","4"]

-----------------------------------
var a ="1,2,3,4"
a.split("")

//["1", ",", "2", ",", "3", ",", "4", ","]

//优化:
var names = "1,23,4";

var re = /\s*,\s*/;
var nameList = names.split(re);

console.log(nameList);//["1","23","4"]


Array 对象方法与作用

方法名称 说明
push 向数组的末尾添加一个或更多元素,并返回新的长度 a.push(5)
pop 删除并返回数组中的最后一个元素 a.pop()
shift 删除并返回数组中的第一个元素 a.shift()
unshift 添加并返回数组中的第一个元素 a.unshift()
indexOf 找出某个元素在数组中的索引,并返回该元素索引。
splice 从下标M开始向右删除N个元素,且在下标M添加新元素(可选)。
slice 复制数组(浅拷贝)。从下标M开始带下标N结束(不包括下标N),作为一个新数组。原数组不变。
concat 连接两个或更多的数组,并返回结果。被连接的数组不变。
reverse 将数组逆序。会改变原数组。
sort 对数组进行排序
join 把数组的所有元素放入一个字符串,元素通过制定的分隔符进行分离 arr1.join(',')
toString 把数组转成字符串 arr1.toString()
toLocaleString 把数组转换为本地字符串 arr1.toLocaleString()
split 将string对象分割成字符串数组。
valueOf 返回数组对象的原始值

更多请看MDN

相关文章

网友评论

    本文标题:数组(Array)常用的操作方法

    本文链接:https://www.haomeiwen.com/subject/gxbeqftx.html