数组常用API

  1.数组序列化(toString、join)
  2.构造函数的方法(isArray、from、of)
  3.栈与队列方法(push、pop、shift、unshift)
  4.排序方法(reverse、sort)
  5.操作方法(concat、slice、splice)
  6.位置方法(indexOf、lastIndexOf)
  7.迭代方法(every、some、filter、map、forEach)

1.数组序列化

  • toString( )
      将数组转为字符串,逗号分隔
  • join( )
      指定字符串分隔
例1:toString()
var arr1 = [1, 5, 44, 'new', { age: 17 }];
console.log(arr1.toString());   //1, 5, 44, new, [object Object]

例2:join()
var arr2 = [1, 5, 44, 'new', { age: 17 }];
console.log(arr2.join(' - '));   //1 - 5 - 44 - new - [object Object]


2.构造函数的方法

  • Array.isArray( )
      判断是否为数组
  • Array.from( )
      用类数组或可迭代对象,创建一个新数组
  • Array.of( )
      根据参数创建数组 (支持任意的参数数量和类型)
1:Array.isArray()
var arr1 = [1, 5, 2, 8, 10];
console.log(Array.isArray(arr1));   //true2:Array.from()
var arr2 = Array.from("html5");
console.log(arr2);   //['h', 't', 'm', 'l', '5']3:Array.of()
console.log(Array.of(1, 2, 4, 3));  //[1, 2, 4, 3]


3.栈与队列方法

  • push( )
      向数组末尾添加一个或多个元素,并返回新数组的长度
  • pop( )
      删除最后一个元素,并返回该元素
  • shift( )
      删除第一个元素,并返回该元素
  • unshift( )
      向数组开头添加一个或多个元素,并返回新数组的长度

  • 注意:这4个方法,都会改变原数组
例1:push()
var arr1 = ["dog", "cat", "tiger"];
var num = arr1.push("duck");
console.log(arr1);   //['dog', 'cat', 'tiger', 'duck']
console.log(num);   //4

例2:pop()
var arr2 = ["dog", "cat", "tiger"];
var num = arr2.pop();
console.log(arr2);   //['dog', 'cat']
console.log(num);   //tiger

例3:shift()
var arr3 = ["dog", "cat", "tiger"];
arr3.pop();
console.log(arr3);   //['dog', 'cat']

例4:unshift()
var arr4 = ["dog", "cat", "tiger"];
arr4.unshift('chicken', 'mouse');
console.log(arr4);   //['chicken', 'mouse', 'dog', 'cat', 'tiger']

4.排序方法

  • reverse( )
      颠倒数组顺序
  • sort( )
      对数组进行排序
      参数:
        无参数,按照字符编码的顺序进行排序
        如果要进行升序或降序排序的话,要提供比较函数
          排序顺序可以是字母或数字,并按升序或降序
          默认排序顺序为按字母升序
例1:reverse()
var arr1 = ["dog", "cat", "tiger", "duck"];
console.log(arr1.reverse());   //['duck', 'tiger', 'cat', 'dog']

例2:sort()  //无参数
var arr2 = ["dog", "cat", "tiger", "duck", 40, 5];
arr2.sort();
//当数字是按字母顺序排列时"40"将排在"5"前面
//使用数字排序,你必须通过一个函数作为参数来调用
console.log(arr2);   //[40, 5, 'cat', 'dog', 'duck', 'tiger']

例3:sort(sortfunction)   //function函数作为参数
var arr3 = [44, 110, 1, 5, 30, 10];
arr3.sort(function(a, b) {
	//return a-b   升序
	//return b-a   降序
	//return a=b   保持不变
    return a - b
});
console.log(arr3);   //[1, 5, 10, 30, 44, 110]

5.操作方法

  • concat( )
      连接两个或多个数组
      不改变原数组,返回被连接数组的副本
  • slice( )
      提取字符串的某个部分,并以新的字符串返回
      参数:
        start 开始位置
        end  结束位置(不包含)
        参数可为负数,表示原数组中的倒数第几个元素
  • splice( )
      添加或删除数组中的元素
      参数:
        index
        howmany
        item1, …, itemX
      返回值:
        如果删除了元素,则返回的是被删除的元素的数组。
      注意:
        这种方法会改变原始数组
1:array1.concat(array2,..,arrayX)
var arr1 = [1, 2, 3];
var arr2 = ['@', '#'];
var arr3 = ['a', 'b', 'c'];
var result = arr1.concat(arr2, arr3);
console.log(result);   // [1,   2,   3,   '@', '#', 'a', 'b', 'c']

例2:slice()
var arr2 = ["dog", "cat", "tiger", "duck"];
var intercept = arr2.slice(1, 3);
console.log(intercept);   //['cat', 'tiger']

例3:splice()   //向数组添加新元素
var arr3 = ["dog", "cat", "tiger", "duck"];
arr3.splice(2, 0, 'monkey', 'fish')
console.log(arr3);   //['dog', 'cat', 'monkey', 'fish', 'tiger', 'duck']

例4:splice()   //移除第三个元素,并添加新元素
var arr4 = ["dog", "cat", "tiger", "duck"];
arr4.splice(2, 1, 'monkey', 'fish')
console.log(arr4);   //['dog', 'cat', 'monkey', 'fish', 'duck']

例5:splice()   //从第三个位置开始,删除两个元素
var arr5 = ["dog", "cat", "tiger", "duck"];
arr5.splice(2, 2);
console.log(arr5);   //['dog', 'cat']

6.位置方法

  • indexOf( )
      返回指定元素的位置,没有则返回 -1
      参数:
        item 要查找的元素
        start 可选,开始检索的位置。没有则从头开始
  • lastIndexOf( )
      返回元素最后出现的位置,没有则返回 -1
      参数:
        item 要检索的字符串值
        start 可选,开始检索的位置。没有则从最后一个字符开始
例1:indexOf()
var arr1 = ["dog", "cat", "tiger", "cat", "duck"];
var a = arr1.indexOf('cat');
console.log(a);   //1

例2:lastIndexOf()   //无参
var arr2 = ["dog", "cat", "tiger", "cat", "duck"];
var b = arr2.lastIndexOf('cat');
console.log(b);   //3

例3:lastIndexOf()   //有start参数
var arr3 = ["dog", "cat", "tiger", "cat", "duck"];
var c = arr3.lastIndexOf('cat', 2);
//从start位置,从后向前寻找
console.log(c);   //1

7.迭代方法

  • every( )
      检测所有元素是否都符合条件(通过函数提供)
      概述:
        检测到不符合条件的元素,返回false,且后面的元素不会检索
        所有元素满足条件,返回true
      注意:
        不会检测空数组
        不改变原数组
      参数:
        array.every(function(currentValue,index,arr), thisValue)
        currentValue  必须,当前元素的值
        index  可选,当前元素的索引
        arr    当前元素所属的数组对象
        thisValue  可选,对象作为回调时,传递给函数,用作 “this” 的值。 如果省略 thisValue ,“this” 的值为 “undefined”
  • some( )
      用于检测是否有满足条件的元素
  • filter( )
      返回一个新数组,数组元素是所有符合条件的元素
  • map( )
      返回新数组,数组元素为原数组调用函数处理后的值
  • forEach( )
      调用数组的每个元素,并将元素传递给回调函数
      返回值:undefined
例1:every()
var arr1 = [30, 23, 16, 44];
var result = arr1.every(function(age) {
    return age >= 18
})
console.log(result);   //false

例2:some()
var arr2 = [30, 23, 16, 44];
var result = arr2.some(function(age) {
    return age >= 40
})
console.log(result);   //true

例3:filter()
var arr3 = [30, 23, 16, 44];
var result = arr3.filter(function(age) {
    return age >= 25
})
console.log(result);   //[30, 44]

例4:map()
var arr4 = [4, 9, 16, 25];
var result = arr4.map(function(num) {
    return Math.sqrt(num)
})
console.log(result);   //[2, 3, 4, 5]

例5:forEach()
var arr5 = ['张三', '李四', '王五', '赵六'];
arr5.forEach(function(name, index) {
    console.log(index + ' -- ' + name);
})   
// 0 -- 张三
// 1 -- 李四
// 2 -- 王五
// 3 -- 赵六
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值