JS 数组

1:数据的声明,有三种方式

  • var array=[] 推荐方式
  • var array=new Array()
  • var array=[1,2,3,4,5]
  • Array.isArray(array) 检查是否是数组

2:数组的读写

var array=[];
for(var i=0,i<10,i++){
    array[i]=i;
}

3:由字符串生成数组

var str="aaa,bbb,ccc,dddd";
var arr=str.split(',');

4:对数组的整体性操作

  • 浅复制,是对原数组的引用,原数组变内容变换,新数组也会跟着变化
var array =[1,2,3,4,5];
var newArray=array;
array[1]=10;
print(newArray[1]) 10
  • 深复制,将原数组每一个元素都重新赋值一遍
function copy(old,newA){
    for (var i=0;i<old.length;i++){
        newA[i]=old[i];
    }
}

5:数组的方法

  • 1:indexOf 返回该该元素所在数组的位置
var array=[1,2,3,4,5]
array.indexOf(1)
  • 2:join 将数组转换为字符串,类同toString();
array.join(',') //1,2,3,4,5
  • 3:concat 合并多个数组创建一个新数组
var array=[11,22,33],array1=[3,4,5];
var newArray= array.concat(array1);
  • 4:splice() 从现有数组里面截取新的数组 第一个为起始索引,第二个为截取的长度
var array=[1,2,3,4,5]
var newArray=array.splice(1,3); result:2,3,4

6:数组元素的添加删除

  • push 将一个元素添加到数组末尾
var array=[1,2,3,4];
array.push(5);
print(array) 1,2,3,4,5
  • unshift 将一个元素添加到数组的头部
var array=[1,2,3,4,5];
array.unshift(5);
print(array) 5,1,2,3,4
array.unshift(7,6);
print(array) 7,6,5,1,2,3,4
  • pop删除数组末尾的元素
var array=[1,2,3,4,5];
array.pop();
print(array) 1,2,3,4
  • shift 删除数组的第一个元素
var array=[1,2,3,4,5];
array.shift();
print(array) 2,3,4,5
  • splice 从数组中添加和删除元素
var array=[1,2,3,4,5];
  • splice 添加元素 有三个参数

1: 起始索引,你想添加的位置
2: 需要删除元素的个数 此处为0
3: 添加进数组的元素

var array=[1,2,3,4,5];
array.splice(2,0,7,8);
print(array) 1,2,7,8,3,4,5
  • splice 删除元素

1:起始位置
2:要删除元素的个数

var array=[1,2,3,4,5];
array.splice(3,2);
print(array); 1,2,5;
  • reverse 倒序排列
var array=[1,2,3,4,5];
array.reverse(); 5,4,3,2,1
  • sort 默认字符串 按照英文字母排序,可以传入一个比较函数
var array=["aa","cc","bbb"];
array.sort(); aa,bbb,cc;
array.sort(function(num1,num2){
    return num1-num2
});

7:数组的迭代器方法

  • 1 :不生成新数组的迭代器

forEach() 遍历数组元素

var array=[12,3,4,5];
array.forEach(function(){

});

every() 遍历数组,对于所有元素都返回true的情况才会返回true,否则返回false;

var array=[1,0,-1];
array.every(function(item){
    return item;
})
false;

some() 遍历数组,对于所有元素有一个返回true,那么结果就返回true;

var array=[1,2,3,4,0];
array.some(function(item){
    return item;
})
true;

reduce() 将每一个元素进行累加,最后返回累加的值(从左往右累加) reduceRight() 从右往左累加

var array=[1,2,3,4,5];
var result= array.reduce(function(item,next){
    return item+next;
})
print(result) 15;
  • 2:生成新数组的迭代器

map() 类同于forEach() ,返回的新数组是由每一个元素处理得来

var array=[1,2,3,4,5];
var result= array.map(function(item){
    return item*10;
})
print(result) 10,20,30,40,50

filter() 类同于every(),也是返回一个布尔元素,如果为true,返回该元素

var array=[1,2,3,4,5];
var result= array.filter(function(item){
    return item>3;
})
print(result) [4,5];

8:二维数组和多维数组

二维数组和多维数组

var array=[];
array[1]=[1,2,3];
print(array[1][1])'

9:对象数组

var array=[{id:1,name:11},{id:2,name:222}];
原文地址:https://www.cnblogs.com/dark-liu/p/5783208.html