Array范例
数组的罕见要领
检测数组
怎样肯定当前是一个数组,JS供应了以下几种体式格局
1.typeof没法检测数组对象:typrof[]返回object
2.instanceof:[]instanceof Array返回true/false
3.Object.prototype.toString.call([])返回[object Array]
4.Array.prototype.isPrototypeOf([])返回true/false
5.ES5中的新要领,Array.isArray([])返回true/false
var arr = [1,2,3,4,5];
console .log(arr instanceof Array);//true
console.log(Object.prototype.toString.call(arr));//[object Array]
console .log(typeof null);//object
console .log(null instanceof Object);//false
console.log(Object.prototype.toString.call(null));//[object Null]
console .log(Array .prototype.isPrototypeOf(arr));//true
console.log(Array.isArray(arr));//true
转换要领
JS供应了以下的要领用于数组的转换
1.toString() 把数组转换为字符串,并返回效果
2.valueOf() 返回数组对象的原始值
var arr =[1,2,3,4,5];
console .log(arr.toString());//1,2,3,4,5
console .log(arr.valueOf());//[1,2,3,4,5]
var obj = {
name :'jinx'
}
console .log(obj.valueOf());//{name:'jinx'}
收支栈要领
JS中供应了以下要领,用于数组的收支栈操纵
1.push()想数组的末端增加一个或多个元素,并返回新的长度
2.pop() 删除数组中的而末了一个元素并返回删除的元素
3.shift()删除并返回数组的第一个元素
4.unshift() 向数组的开首增加一个或更多的元素,并返回新的长度
var arr= [1,2,3,4,5];
arr .push(6);
console .log(arr);//[ 1, 2, 3, 4, 5, 6 ]
arr.pop();
console .log(arr);//[ 1, 2, 3, 4, 5 ]
arr.unshift(7);
console .log(arr);//[ 7, 1, 2, 3, 4, 5 ]
arr.shift();
console .log(arr);//[ 1, 2, 3, 4, 5 ]
排序要领
JS中供应了以下的要领,用于数组的排序操纵
1.reverse() 反转数组的元素递次
2.sort() 对数组的元素举行排序
var values = [1,2,3,4,5,6];
console .log(valuse.sort());//1,2,3,4,5,6
console .log(values. reverse());//6,5,4,3,2,1
###衔接要领###
在JS中供应了以下要领,用于多个数组间的衔接操纵
concat() 衔接两个或更多的数组,并返回效果
var arr = [1,2,3,4,5];
console .log(arr.concat(6));//[ 1, 2, 3, 4, 5, 6 ]
console .log(arr.concat([7,8,9]));//[ 1, 2, 3, 4, 5, 7, 8, 9 ]
###操纵要领###
slice() 拔取数组的一部分,并返回一个新数组
splice() 从数组中增加或删除元素
var arr = [1,2,3,4,5];
/*
splice(start, deleteCount)要领
* 作用 - 用于删除当前数组中指定位置指定个数的元素
* 参数
* start - 示意删除的最先位置
* deleteCount - 示意删除的个数
* 返回值 - 将删除的元素构成的新数组举行返回
*/
// var result = arr.splice(0, 5);
// console.log(result);
// console.log(arr);
/*
splice(start, deleteCount, item1, item2, ...)要领
* 作用 - 向指定数组的指定位置增加元素
* 参数
* start - 示意删除的最先位置
* deleteCount - 示意删除的个数
* item1, item2, ... - 示意向数组增加的元素
* 返回值 - 将删除的元素构成的新数组举行返回
*/
// var result = arr.splice(0, 0, 6,7,8);
// console.log(result);
// console.log(arr);
// var result = arr.splice(0, 3, 6,7,8);
// console.log(result);
// console.log(arr);
/*
slice()要领
* 作用 - 截取指定数组中的元素
* 参数
* begin - 示意最先截取的位置(从 0 最先)
* end - 示意完毕截取的位置(截取末了一个位置的下一个位置)
* 返回值 - 返回截取的元素构成的新数组
*/
var result = arr.slice(2,3);
console.log(result);
###检索要领###
indexOf() 搜刮数组中的元素,并返回他地点的位置
lastindexOf 返回一个指定的字符串值末了涌现的位置,在一个字符串中指定位置从后向前搜刮
var arr =[‘jinx’,’vn’,’mf’,’noc’];
console .log(arr.indexOf(‘jinx’));//0
console .log(arr.indexOf(‘mf’));//2
console .log(arr.indexOf(‘bec’));//-1
###forEach要领###
var arr = [‘jinx’,’mf’,’noc’,’vn’];
arr. forEach(function(currentValue,index,array){
console .log(currentValue);
console .log(index);
console .log(array);
});
###迭代要领###
1.every():推断数组中每一个元素是不是都满足fun函数定义的前提。只需满足才返回true,不然返回false。
2.filter():特地用于筛选出数组中相符fun函数推断前提的元素构成的心数组。
3.forEach():特地用于对原数组中每一个元素实行雷同的fun函数对象划定的操纵。
4.map():特地用于基于袁术组建立新数组对象。
5.some():推断数组中是不是包括满足fun暧昧是定义的前提的元素,只需包括就返回true,不然返回false。
var arr = [1,2,3,4,5];
var result = arr.every(function(currentValue,index,array){
return (currentValue<=5);
});
console .log(result);
##并归要领###
1.reduce()将数组从左向右迭代。
2.reduceRight()将数组从右向左迭代.
var arr = [1,2,3,4,5];
arr .reduce(function(accumulator,currentValue,cunrrentIndex,array){
console .log(accumulator)
return accumulator + currentValue;
});