JavaScript-数组及数组元素操作

一、数组的创建  

1、var arrayObj = new Array(); //创建一个数组  
2、var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度  

:创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变
3、var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值  

// 字面量方式:
// 这个方法也是我们最常用的,在初始化数组的时候 相当方便
var a = [1, 2, 3];
// 构造器:
// 实际上 new Array === Array,加不加new 一点影响都没有。
var a = Array(); // [] 
var a = Array(3); // [undefined,undefined,undefined]
var a = Array(1,2,3); // [ 3,11,8 ]

二、数组元素的添加

1、push()

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度 

let a = [1,2,3];
let item = a.push('末尾'); // 4
console.log(a); // [1,2,3,'末尾']

2、unshift()

arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度 

let a = [1,2,3];
let item = a.unshift('开头'); // 4
console.log(a); // ['开头',1,2,3]

3、splice()

arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

三、数组的元素的访问  

var testGetArrValue=arrayObj[1]; //获取数组的元素值  
arrayObj[1]= "这是新值"; //给数组元素赋予新的值

四、数组元素的删除

1、pop()

arrayObj.pop(); //移除最后一个元素并返回该元素值  

let a = [1,2,3];
let item = a.pop(); // 3
console.log(a); // [1,2]

2、shift()

arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移  

let a = [1,2,3];
let item = a.shift(); // 1
console.log(a); // [2,3]

3、splice()

arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

语法: array.splice(index,howmany,item1,.....,itemX)

参数:

index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX: 可选。向数组添加的新项目。
返回值: 如果有元素被删除,返回包含被删除项目的新数组。

(1)删除元素

let a = [1, 2, 3, 4, 5, 6, 7];
let item = a.splice(0, 3); // [1,2,3]
console.log(a); // [4,5,6,7]
// 从数组下标0开始,删除3个元素
let item = a.splice(-1, 3); // [7]
// 从最后一个元素开始删除3个元素,因为最后一个元素,所以只删除了7

(2)删除并添加

let a = [1, 2, 3, 4, 5, 6, 7];
let item = a.splice(0,3,'添加'); // [1,2,3]
console.log(a); // ['添加',4,5,6,7]
// 从数组下标0开始,删除3个元素,并添加元素'添加'
 let b = [1, 2, 3, 4, 5, 6, 7];
let item = b.splice(-2,3,'添加1','添加2'); // [6,7]
console.log(b); // [1,2,3,4,5,'添加1','添加2']
// 从数组最后第二个元素开始,删除3个元素,并添加两个元素'添加1'、'添加2'

(3)不删除只添加:

let a = [1, 2, 3, 4, 5, 6, 7];
let item = a.splice(0,0,'添加1','添加2'); // [] 没有删除元素,返回空数组
console.log(a); // ['添加1','添加2',1,2,3,4,5,6,7]
let b = [1, 2, 3, 4, 5, 6, 7];
let item = b.splice(-1,0,'添加1','添加2'); // [] 没有删除元素,返回空数组
console.log(b); // [1,2,3,4,5,6,'添加1','添加2',7] 在最后一个元素的前面添加两个元素

总结:

数组如果元素不够,会删除到最后一个元素为止
操作的元素,包括开始的那个元素
可以添加很多个元素
添加是在开始的元素前面添加的

(4)根据对象ID,删除对象中对象

//数据源
let list = [{
        id:0,
        name:'000'
    },{
        id:1,
        name:'111'
    },{
        id:2,
        name:'222'
    },{
        id:3,
        name:'333'
    }]


//遍历删除
function deletArrItemFunc(list,deleteID){

  for(var i = 0;i<list.length;i++)
  {
    if(list[i].id===deleteID){
      list.splice(i,1)
    }
  }
  return list
}

//调用
var res = deletArrItemFunc(list,2)
console.log(res)

五、数组的截取和合并

1、slice()

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素  

2、concat()

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

六、数组元素的排序

1、reverse()

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址

let a = [1,2,3];
a.reverse(); 
console.log(a); // [3,2,1]

 2、sort()

arrayObj.sort(); //对数组元素排序,返回数组地址 

七、数组的拷贝

1、slice()

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向  

2、concat()

arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

可参考文章

https://www.jb51.net/article/141330.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值