数组的使用方法

 ES5:

concat() 合并数组,并返回合并之后的数据

let arr1 = ["a","b","c"]

let arr2 = ["d","e","f"]

console.log(arr1.concat(arr2))  //["a","b","c","d","e","f"]

join()  使用分隔符,将数组转为字符串并返回新字符串 

 let fruits = ["a","b","c"];
console.log(fruits.join(" * ")); // a,b,c
 

 pop() 删除最后一位,并返回删的数据

let arr =  ["a","b","c","d"]
console.log(arr.pop())   //    ['d'] 

 shift()  删除第一位,并返回删除的数据

 let arr =  ["a","b","c","d"]
console.log(arr.shift())       //   ['a']

 unshift() 可向数组的开头添加一个或更多元素,并返回新的长度。

 let arr =  ["a","b"]
console.log(arr.unshift("c"))   //  3  数组长度
console.log(arr)               //   ["c","a","b"]

 push()  在最后一位新增一或多个数据,返回长度

 let arr =  ["a","b"]
console.log(arr.push("c"))   //  3 长度
console.log(arr)            //   ["a","b","c"]

 reverse()  反转数组,返回结果

 let arr = [1,2,3,4]
console.log(arr.reverse()) // [4,3,2,1]

  slice()  截取指定位置的数组,并返回

let arr =  ["a","b","c","d"]
 
console.log(arr.slice(1))      // ["b","c","d"]
 
console.log(arr.slice(2,4))   //  ["c","d"]
 

 sort() 排序(字符规则),返回结果

let arr = [4,5,3,1,2]
console.log(arr.sort( ( a-b ) =>a-b))  //升序   [1, 2, 3, 4, 5]
console.log(arr.sort( ( a-b ) =>b-a))  //降序   [5, 4, 3, 2, 1]

 splice() 通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容

 let arr =  ["a","b","c","d"]
 
//删除0个,返回空数组
console.log(arr.splice(2,0,"e"))    //  ["a","b","e","c","d"]
 
//删除一个,返回删除元素数组
console.log(arr.splice(2,1,"e"))   //   ["a","b","e","d"]

toString() 直接转为字符串,并返回 

//toString()返回唯一值的方法,它不会因为本地环境的改变而发生变化。
//返回时间类型的数据,使用toLocaleString()
//若是后台处理字符串,使用toString()
 
 
//将数字转为字符串:
var a = 1234;
console.log(a.toString())          //'1234'
 
//将数组转为字符串:
let arr =  ["a","b","c","d","e"]
console.log(arr.toString())       //   "a,b,c,d,e"
 
//将时间转为字符串
var date = new Date();
console.log(date.valueOf());       //'1564453330442'
console.log(date.toString());      //"Tue Jul 30 2019 10:22:10 GMT+0800 (中国标准时间)"
  

valueOf()  用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身 

let str = '九十五分'
console.log(str.valueOf())                  //九十五分
 
const arr = ['a','b','c']
console.log(arr.valueOf())                 //['a','b','c']
 
let obj = {
    name:'yy'
}
console.log(obj.valueOf())                //{name: 'yy'}
 
let date = new Date('2020-10-3 18:00:30')
console.log(date.valueOf())              //1601719230000:当前时间距1970年1月1日午夜的毫秒数
 
//时间戳转为标准的ISO时间格式
let timestamp = date.valueOf()
console.log(new Date(timestamp))         //Sat Oct 03 2020 18:00:30 GMT+0800 (中国标准时间) 

 indexOf()  查询并返回数据的索引

 //查找数组中某元素的位置下标:
let arr = ["a","b","c","d","e"];
let a1 = arr.indexOf("c");
console.log( a1 )                               // 2
 
//从第四个位置开始查找c元素
let arr2 = ["a","b","c","d","e","f","g","c"];
let a2 = arr2.indexOf("c",4);
console.log( a2 )                               // 7
 
//判断数组中是否存在某元素:
let arr3 = ["a","b","c","d","e"];
let  a3 = arr3.indexOf("f")  
console.log( a3 )                               // 没找到值为-1

lastIndexOf() 反向查询并返回数据的索引 

//搜索将从指定位置开始,如果未指定开始位置,则从末尾开始,并在数组的开头结束搜索。 
//如果未找到该项目,则返回 -1。 
//如果要搜索的项目不止一次出现,将返回最后一次出现的位置。
let arr2 = ["a","b","c","d","e","f","g","h","c"];
var a2 = arr2.lastIndexOf("c",4);
console.log( a2 )                                  // 2 

 forEach() 用于调用数组的每个元素,并将元素传递给回调函数。对于空数组是不会执行回调函数的

 //替代for循环,本身不支持 continue 与 break 语句,可以通过 some 和 every 来实现
let arr1 = [1,2,3,4];
arr1.forEach(function(item,index){
console.log(item);    
});
//1
//2
//3
//4
--------------------------------------------------------------------------
//使用 return 语句实现 continue 关键字的效果
let arr2 = [1, 2, 3, 4, 5];
arr2.forEach(function (item) {
    if (item === 3) {
        return;
    }
    console.log(item);
});
//1
//2
//4
//5

map()  创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果

 var arry = [1,4,9,16];
const map1 = arry.map(x => x *2);
console.log(map1);  // [2,8,18,32]

filter()  创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

不会对空数组进行检测。

不会改变原始数组。

var ages = [32, 33, 16, 40];
var new = ages .filter( item =>item < 18)
console.log( new )     //  [16]
console.log(ages)     // [32, 33, 16, 40];  不改变原数组

every()  用于检测数组所有元素是否都符合指定条件,使用指定函数检测数组中的所有元素:

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测

如果所有元素都满足条件,则返回 true

不会对空数组进行检测。

不会改变原始数组。

 let ages = [32, 33, 12, 40];
let  checkAdult  = ages.every(age=>age>18)
console.log( checkAdult )    // false
------------------------------------------------------------
every 的break实现:
let arr = [1, 2, 3, 4, 5];
arr.every(function (item) {
        console.log(item);
        return item !== 3;
});
//1
//2
//3

 some() 用于检测数组中的元素是否满足指定条件,会依次执行数组的每个元素

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

如果没有满足条件的元素,则返回false。

不会对空数组进行检测。

不会改变原始数组。

var ages = [32, 33, 12, 40];
var  checkAdult  = ages.some(age=>age<18)
console.log( checkAdult )    // true
------------------------------------------------------------
some的continue实现:
var arr = [1, 2, 3, 4, 5];
arr.some(function (item) {
        if (item === 2) {
                return;        // 不能为 return false
        }
        console.log(item);
});
//1
//3
//4
//5

reduce() 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。可以作为一个高阶函数,用于函数的 compose。

对于空数组是不会执行回调函数的。

//默认从左到右:
var numbers = [65, 44, 12, 4];
numbers.reduce((total,nextNum)=>{
    return total + num
})
 
// 125

reduceRight() 和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。

 //从右到左,减去每个数组元素:
var numbers = [2, 45, 30, 100];
numbers.reduceRight((total, num)=> {
    return total - num;
})
// 23

ES6 

Array.form() 可以接收一个伪数组作为参数,返回伪数组转换后的结果

 //用法一:将类数组或可遍历对象转换成真正的数组
    let arrlike = {
        '0': 'a',
        '1': 'b',
        '2': 'c',
        length: 3
    }
    let arr = Array.from(arrlike)
    console.log(arr)              //['a', 'b', 'c']
 
 
    //用法二:用来对每个元素进行处理,将处理后的值放入返回的数组
    let arrlike1 = {
        '0': '1',
        '1': '2',
        '2': '3',
        length: 3
    }
    let newAry = Array.from(arrlike1, function (item) {
        return item * 2
    })                            // [2, 4, 6]

  find() 用于找出第一个符合条件的数组成员,如果没有找到返回undefined

    let ary=[{
        id:1,
        name:'张三'
    },{
        id:2,
        name:'李四'
    }
    ]
    let res = ary.find(function(item,index){
        // console.log(item,index)
        return item.id ==2
    })
//{id: 2, name: '李四'}

 findIndex() 用于找出第一个符合条件的数组成员的位置,如果没有找到返回-1

  let ary = [1,2,4,5,7,9]
    let index = ary.findIndex((value,index)=>value>5)
    console.log(index)                                 //4

includes() 表示某个数组是否包含给定的值,返回布尔值 

let arr = [1,2,4]
    let res = arr.includes(10)
    console.log(res)
//false 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值