javascript-Array类型

本文详细介绍了JavaScript中数组的各种操作方法,包括数组的声明、元素输出、排序、增删改、查找位置等,并提供了实例演示如何使用这些方法。

1.Array声明
1)var arr = new Array(3)
   var arr = new Array("aa","bb","cc")
   var arr = Array("aa","bb","cc")//new 可以省略
2)var arr = ["a","b","c"]
   var arr = []
3)数组长度的扩展
  1.arr[4] = "dd" //数组长度会自动加1
  2.arr.length = 5 //数组长度会自动增加到5 创建undefined的变量进行填充
  3.arr.length = 2 //数组长度变成2 arr[2]=undefined

2.数组元素的输出
 toString()/valueOf()/join() join可以指定分隔符

var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
alert(colors.toString()); // red,blue,green
alert(colors.valueOf()); // red,blue,green
alert(colors); // red,blue,green

alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue

3.栈与队列方法
1)栈 push()/pop()
push方法可以有多个参数 不过pop每次只会输出1个元素
eg:var colors = {};
colors.push("red","green");
2)队列 shift()/push() shfit取出数组的第一个元素
var colors = new Array(); 
colors.push("red", "green"); 
colors.shift()

3)unshift() 向数组前部插入n个元素
var colors = new Array(); 
colors.unshift("red","blue");

4.数组排序
1)reverse() 将数组逆序排列
2)sort() 默认按照字符顺序排列数组
    可以接受一个比较函数进行定制排序
    var arr = [1,5,8,15];//1,15,5,8
    alert(arr.sort());
    arr = [1,5,8,15];
    alert(arr.sort(compare));
    function compare(a,b){
        if(a>b){
            return 1;
        }else if(b>a){
            return -1;
        }else{
            return 0;
        }
    };//1,5,8,15

5.数组增删改
1)concat 创建一个合并后的新数组
var colors = ["red", "green", "blue"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
alert(colors); //red,green,blue
alert(colors2); //red,green,blue,yellow,black,brown

2)slice 截取一个新数组 两个参数 起始位置 终了位置 终了位置可省略 
截取范围为 起始位置~终了位置-1
var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);
alert(colors2); //green,blue,yellow,purple
alert(colors3); //green,blue,yellow

3)splice增删改
2+1个参数:   1:要删除的元素的起始位置 2:要删除的元素个数 3~:要插入的元素
返回值:删除的元素的数组 如没有删除元素 返回空数组

splice(0,2)会删除数组中的前两项
splice(2,0,"red","green")会从当前数组的位置 2 开始插入字符串"red"和"green"
splice (2,1,"red")会替换位置 2的值

6.查找元素位置
indexOf()/lastIndexOf() 找不到返回-1
 eg:var arr = ["aa","bb","cc","dd","ee"];
        alert(arr.indexOf("dd"));//3

7.迭代方法
   every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
   some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。
   
   map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
 filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
 forEach():对数组中的每一项运行给定函数。这个方法没有返回值。

eg1: 
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
return (item > 2);
});
alert(everyResult); //false
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true

eg2: 
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]

eg3: 
var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]

eg4: 
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
//执行某些操作
});

8.归并方法

reduce()和 reduceRight()
传给 reduce()和 reduceRight()的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); //15
 

转载于:https://my.oschina.net/dajianguo/blog/867333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值