JS笔记(3) —— 数组 API

/*
 *   concat(agr1,agr2,agrN...)
 *   参数:(必须有一个参数)agrS
 *   将多个数组合并为一个数组,不影响原数组
 *   返回新的数组
 * */
var arr1 = [1,2,3,4,5];
var arr2 = [6,7,8,9,10];
var arr3 = [11,12,13,14,15];
var concat = arr1.concat(arr2,arr3);
console.log(concat);   // [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]


/*
 *   every(fn(val,index,arr))方法
 *   可使用1个参数:(必须)fn()是一个处理函数,val表示数组元素,(可选)index表示数组元素索引,(可选)arr表示当前元素所属哪个数组
 *   检测数组中每一个元素是否满足条件表达式
 *   返回:fasle or true
 * */
var age1 = [12,14,15,16,18,20];
age1.every(function (val,index,arr) {     //数组元素,数组元素索引,所属数组
    console.log(val > 10);   // true
    console.log(val < 15);   // true
    console.log(val > 20);   // false
})


/*
 *   filter(agr1,agr2,agr3)方法
 *   可使用3个参数:(必须)agr1表示数组元素,(可选)agr2表示数组元素索引,(可选)agr3表示当前元素所属哪个数组
 *   根据表达式过滤数组对象,返回符合条件表达式的数组元素
 *   返回:一个新的数组
 * */
var arr4 = [10,20,30,40,50];
var arr5 = arr4.filter(function (val,index,arr) {
    return val > 30;
})
console.log(arr5);   // [40,50]


/*
 *   indexof(item,start)方法
 *   可使用2个参数:(必须)item表示要查找的值,(可选)statr表示从什么地方开始检索,它的合法取值是0到arr.length-1
 *   指定的item在数组中首次出现的位置
 *   返回:如果存在则返回首次出现的位置,如果没有则返回-1;
 * */

var arr6 = ['lisi','zhangsan','wangwu','wanger',123,456,789];
var index = arr6.indexOf(456);
console.log(index);   // 5   索引从0开始计算  所以index = 5


/*
 *   join(separator)方法
 *   可使用1个参数:(可选)separator表示指定的分隔符,如果省略此参数,默认使用逗号","分隔
 *   将数组转换成一个字符串
 *   返回一个字符串,使用separator分隔开
 * */

var arr7 = ['zhangsan','lisi','wangwu','wanger'];
var str = arr7.join(' and ');
console.log(str);    // zhangsan and lisi and wangwu and wanger

/*
 *   lastindexOf(item,start)方法
 *   可使用2个参数:(必须)item表示要查找的值,(可选)start表示从什么地方开始检索,它的合法取值是0 到arr.length-1
 *   指定的item在数组中最后一次出现的位置
 *   返回:如果存在则返回最后一次出现的位置,如果没有则返回-1;
 * */
var arr8 = [123,'lisi',456,'zhangsan',789,'wangwu',456];
var index2 = arr8.lastIndexOf(456);
console.log(index2);   //6   索引从0开始计算  所以index = 6

/*
 *   map(val,index,arr)方法
 *   可使用3个参数:(必须)val表示数组中的每一个元素,(可选)index表示数组元素的索引,(可选)表示当前元素属于哪一个数组
 *   数组中的每一个元素依次执行处理函数,并返回处理后的数组
 *   返回:新数组
 * */
var arr9 = [12,13,14,15,16,17,18,19,20];
var arr10 = arr9.map(function (val,index,arr) {
    return val * 2;
})
console.log(arr10);    // [24,26,28,30,32,34,36,38,40]


/*
 *   pop()方法
 *   无参数
 *   删除并返回数组的最后一个元素(将改变原数组)
 *   返回:返回数组的最后一个元素
 * */
var arr11 = [1,2,3,4,5];
var lastItem = arr11.pop();
console.log(lastItem);  // 5

/*
 *   push(agr1,agr2,agrN)方法
 *   可接受多个参数:(必须)agrS表示要添加到数组的元素
 *   像数组末尾添加一个或者多个对象,并返回新的数组长度
 *   将改变原数组的长度
 *   返回:数组长度
 * */
var arr12 = [1,2,3,4,5];
var ss = arr12.push(6,7,8,9,10);
console.log(ss);   // 10
console.log(arr12)  // [1,2,3,4,5,6,7,8,9,10]

/*
 *   reverse()方法
 *   无参数
 *   颠倒数组元素顺序
 *   返回:颠倒后的数组对象
 * */
var arr13 = [1,2,3,4,5];
var arr14 = arr13.reverse();
console.log(arr14);    // [5,4,3,2,1]


/*
 *   shift()方法
 *   无参数
 *   删除数组的第一个元素,并返回该元素
 *   返回:被删除的数组元素,将更改原数组的长度
 * */
var arr15 = [1,2,3,4,5];
var itme = arr15.shift();
console.log(itme);  // 1
console.log(arr15);  // [2,3,4,5]


/*
 *   slice(start,end)方法
 *   2个参数:
 *   (必须)start表示从什么地方开始选取,如果为负数,则从数组的末尾位置开始算起,
 *   (可选)end表示从什么地方结束,如果省略该参数,那么切分的数组从start到数组末尾的位置,如果为负数,那么是从数组末尾开始算起
 *   选取数组的的一部分,并返回一个新数组。
 *   返回:选取的新数组
 * */
var arr16 = [11,22,33,44,55];
var arr17 = arr16.slice(3,5);    //从第3位开始但不包括3到第5位结束包括第5位   所以 arr17=[44,55]
var arr18 = arr16.slice(-4,-2);   //从-4开始包括-4位到-2位结束但不包括-2位   所以 arr18=[22,33]
console.log(arr17);   // [44,55]
console.log(arr18);   // [22,33]


/*
 *   some(fn(val,index,arr),thisValue)方法
 *   可用2个参数:(必须)fn(val,index,arr)是一个函数,数组中的每一个元素都会执行这个函数,
 *   val当前元素的值,
 *   index当前元素的下标,
 *   arr当前元素属于哪一个数组,
 *   thisValue(可选)对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
 *   如果省略了 thisValue ,"this" 的值为 "undefined"
 *   检测数组元素中是否有元素符合指定条件。
 *   返回:如果有一个元素满足条件,则返回true,剩余的元素不会再执行;如果没有满足条件,则返回false;
 *   (不会改变原数组!!!)
 * */
var arr19 = [122,35,287,13,46,200];
var thisValue = {min:30,max:250};
var isok = arr19.some(function (val,index,arr) {
    return val > this.min || val < this.max;
},thisValue)
console.log(isok);   //true


/*
 *   sort(fn())方法
 *   可用1个参数:(可选)fn()是处理函数
 *   用于对数组的元素进行排序,默认按照升序排序
 *   返回:排序过后的数组
 * */
var arr20 = ['m','s','a','w','b','x','c'];
var arr22 = [22,32,12,4,56,84,1,43,2];
var arr23 = arr20.sort();
var arr24 = arr22.sort(function (a,b) {
    return a-b;
})
console.log(arr23);  //  ["a", "b", "c", "m", "s", "w", "x"]
console.log(arr24);  //  [1, 2, 4, 12, 22, 32, 43, 56, 84]

/*
 *   splice(index,howmany,item1,item2,itemN...)方法
 *   前2个参数为必须,index规定从什么地方开始添加/删除元素,该参数是数组元素的下标为数字,
 *   howmany表示要删除多少元素,必须是数字,如果没有规定这个参数,则从index开始删除至数组末尾
 *   itemS表示要添加到数组的新元素
 *   返回:如果从数组中删除了元素,则返回被删除元素的数组
 * */
var arr25 = [10,11,12,13,16,17,18,19,20,'test1','test2'];
arr25.splice(4,0,14,15);
var arr26 = arr25.splice(11,2,21,22);
console.log(arr26);   // ['test1','test2']
console.log(arr25);   // [10,11,12,13,14,15,16,17,18,19,20,21,22]

/*
 *   toString()方法
 *   无参数
 *   将数组转化为字符串,以逗号’分隔
 *   返回:数组转化的字符串
 * */

var arr27 = ['zhangSan','Lisi','Wangwu','ZhaoLiu'];
var str1 = arr27.toString();
console.log(str1);   // zhangSan,Lisi,Wangwu,ZhaoLiu


/*
 *   unshift(item1,item2,itemN)方法
 *   可传多个参数,itemS表示向数组头部添加的新的多个数组元素
 *   向数组头部添加多个数组元素
 *   返回:新的数组长度(改变原数组)
 * */
var arr28 = [6,7,8,9,10];
var arr29 = arr28.unshift(1,2,3,4,5);
console.log(arr29);  // 10
console.log(arr28);  //  [1,2,3,4,5,6,7,8,9,10]


/*
 *   valueOf()方法
 *   无参数
 *   返回原数组对象的原始值
 * */
var arr30 = [1,2,3,4,5];
var arr31 = arr30.valueOf();
console.log(arr31);       // [1,2,3,4,5]
console.log(arr30 == arr31);  // true
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值