// 数组方法
var a = [1, 2, 3, 4, 5];
console.log(a.join()); //1,2,3,4,5
console.log(a.join("")); //12345
var a = new Array(10);
console.log(a.join("-")); //--------- 九个-
var a = [1, 2, 3, 4, 5];
console.log(a.reverse()); //[5,4,3,2,1]
var a = [12, 21321, 3, 44, 5];
console.log(a.sort((a, b) => a - b)); //按照大小排序
console.log(a.sort()); //按照首位排序
console.log(a.concat(0, [4, 5, [4]])); //[12,21321,3,44,5,0,4,5,[4]]
var a = [12, 21321, 3, 44, 5];
console.log(a.slice(0, 2)); //[12,21321]
console.log(a.slice(2)); //[3,44,5]
console.log(a.slice(1, -1)); //[21321,3,44]
console.log(a.slice(-3, -1)); //[3,44]
// es5的数组方法
var a = [1, 2, 4, 2, 4, 5, 6];
a.forEach((element) => {
console.log(element);
});
var b = a.map((e) => {
return e * e;
});
console.log(b); //[1, 4, 16, 4, 16, 25, 36]
// map与foreach的区别是map有返回值 返回新的数组
var b = a.filter((e) => e > 3);
console.log(b); // [4, 4, 5, 6]
//filter是过滤方法 根据返回值真假过滤
var b = a.every((e) => e > 3);
console.log(b); // false
//every判定数组是否全部满足判断条件 否则返回false
var b = a.some((e) => e > 3);
console.log(b); // true
//some判定数组是否含有一个满足判断条件 否则返回false
console.log(a.reduce((x, y) => x + y, 0)); //累加
console.log(a.reduce((x, y) => x * y, 1)); //累乘
console.log(a.reduce((x, y) => (x > y ? x : y))); //取得最大值
//reduce方法是将数组用函数操作为一个值 第一个参数是函数
//第二个参数是第一次操作时候的初始值 如果为空 一开始便是第一个值与第二个值运算 上述累加累乘例子第二参数可以为空
console.log(a.reduceRight((x, y) => x + y, 0)); //从后累加
//reduceRight与reduce差不多 区别是操作是从后往前
console.log(a.indexOf(1)); //0
console.log(a.indexOf(2,2)); //3
//indexOf 如果没有第二个参数是返回参数第一次在数组中出现的索引 如果没有 返回-1
//如果有第二个参数 是从第二个参数的索引开始(包括)返回参数第一次在数组中出现的索引 如果没有 返回-1
console.log(a.lastIndexOf(4)); //4
console.log(a.lastIndexOf(2,2)); //1
//lastIndexOf 如果没有第二个参数是 从最后寻找 返回参数第一次在数组中出现的索引 如果没有 返回-1
//如果有第二个参数 是从第二个参数的索引开始(包括)往后寻找 返回参数第一次在数组中出现的索引 如果没有 返回-1