js内置对象:数组对象Array

该博客主要介绍了JavaScript中数组的多种操作方法,包括创建、检测、添加删除元素、排序、获取索引、转字符串、删除或替换元素、截取和连接等,还给出了相关实例,如反转数组参数判断、数组去重、筛选工资等。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

1.创建数组2种方法

var arr1=[]  //[]

var arr2=new Array() //[]
var arr3=new Array(2) //[ <2 empty items> ]
console.log(arr1,arr2,arr3)   

var arr4=new Array(2,3) //[2,3]
console.log(arr4)

2.检测是否为数组2种方法

var arr=[2,3]
//1.传统方法
console.log(arr instanceof Array) //true
//2.新增方法
console.log(Array.isArray(arr)) //true

2.1 实例:反转数组的传入参数判断

function reverse1(arr){
    if(arr instanceof Array){ //同Array.isArray(arr)
        var newArr=[]
        for(let i=arr.length-1; i>=0; i--){
            newArr[newArr.length]=arr[i]
        }
        return newArr    
    }else{
        return '错误:传入的参数必须是数组'
    }
}

var arr=[1,2,'a',3,'b']
console.log(reverse1(arr))

console.log(reverse1('hwhwhwhwh'))

3.添加删除数组元素的方法

1.push,从后面添加,返回添加后的数组的长度

var arr=[1,2]
arr.push('hi')
console.log(arr) //[ 1, 2, 'hi' ]

console.log(arr.push('jim')) //4

2.unshift从前面添加数组,返回添加后数组长度

var arr2=[2,3]
arr2.unshift('1') //['1',2,3]
console.log(arr2)

console.log(arr2.unshift('hahaha')) //4

3.pop删除数组最后一个元素,返回删除的元素,没参数

var arr3=['a','b']
arr3.pop()
console.log(arr3) //['a']
console.log(arr3.pop()) //a

4.shift删除数组前面第一个元素,返回删除的元素,无参数

var arr4=[1,2,4,5]
arr4.shift()
console.log(arr4) //[2,4,5]

console.log(arr4.shift()) //2

例:有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的选出来

function chose(arr){
    var newArr=[]
    for(let i=0; i<=arr.length; i++){
        if(arr[i]>2000){
            //以前写法 newArr[newArr.length]=arr[i]
            newArr.push(arr[i])
        }
    }
    return newArr
}
var arr=[1500, 1200, 2000, 2100, 1800,5800,88888]
console.log(chose(arr))

4.数组排序reverse、sort

1.reverse数组反转

var arr=[1,3,4,5,6]
console.log(arr.reverse())

2.数组排序

var arr1=[2,1,5,0,9,8]
console.log(arr1.sort())
2.2如果有多位则排序不对
var arr2=[11,1,2,23,3,33]
console.log(arr2.sort()) //[ 1, 11, 2, 23, 3, 33 ]
【重点】正确排序写法,固定写法,记住即可
arr2.sort(function(a,b){
    return b-a //升序a-b;降序b-a
})
console.log(arr2)

5.获取数组元素索引indexOf,lastIndexOf

var arr=['blue','yellow','sky']
console.log(arr.indexOf('sky')) //【2】

console.log(arr.lastIndexOf('blue')) //0

console.log(arr.indexOf('haha')) //-1

例:数组去重 [‘c’, ‘a’, ‘z’, ‘a’, ‘x’, ‘a’, ‘x’, ‘c’, ‘b’]

//解.定义一个新数组newArr,把arr逐个检查:新数组不存在此元素(indexOf),则放入其中
function unique(arr){
    var newArr=[]
    for(let i=0; i<=arr.length-1; i++){
        //当前元素在newArr数组中不存在,则把它存入新数组中
        if(newArr.indexOf(arr[i])==-1){
            newArr.push(arr[i])
        }
    }
    return newArr
}

var arr2=['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']
console.log(unique(arr2))

6.数组转字符串2种方式toString,join

var arr=['hello','this','is','jim']
console.log(arr.toString()) //1方式 hello,this,is,jim

var demo=arr.join(' ') //2方式常用 hello this is jim
console.log(demo)

console.log(arr.join('&')) //hello&this&is&jim

console.log(arr.join()) //hello,this,is,jim

7.删除或替换数组中元素:arr.splice()

语法:arr.splice(元素下标,删除元素的数量(<0不删除),插入/替换进行的元素)

var arr=[1,3,4,5]
var demo=arr.splice(1,0,2) //在下标1元素位置,插入2
console.log(demo) //[],没有元素被删除(替换)
console.log(arr) //[1,2,3,4,5] 

var demo2=arr.splice(1,1,'二') //把下标1元素替换为二
console.log(demo2) //[2] //删除(替换掉)的元素组成的数组
console.log(arr) //[ 1, '二', 3, 4, 5 ]

var demo3=arr.splice(2) //删除从下标2开始,之后所有元素
console.log(demo3) //[3,4,5] 删除的元素组成的数组
console.log(arr) //[1,'二']

8.arr.slice(begin,end)

方法返回一个新的数组对象,这一对象是一个由 begin 和 end
决定的原数组的浅拷贝 [包括 begin,不包括end)。原始数组不会被改变。

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2)); // Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4)); // Array ["camel", "duck"]

console.log(animals.slice(1, 5)); //Array ["bison", "camel", "duck", "elephant"]

9.concat()连接两个数组,

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值