加粗样式
添加:posh unshif
删除: pop shif
索引查找: indexOf
将类数组转换为真正数组:Array.from();
连接多个字符,形成一个新数组:concat();
用不同的分隔符,将数组构建成一个字符:joun();
判断某个数据是否是数组是返回true否则返回false; Array.isArray();
数组的反转:reverse();
数组排序,默认排列顺序是按照unicode编码进行排列:sort();
/*
添加 : push unshift
删除: pop shift
indexOf()
*/
// 1. Array.from(likeArr) 将类数组转换为 真正的数组
var str = "hello";
console.log(str.length);
console.log(str[0]);
var arr_str = Array.from(str);
console.log(arr_str);
console.log(arr_str instanceof Array);
var str2 = "123456789"; // [1,2,3,4,5,6,7,8,9]-->[2,4,6,8,10,12,14,16,18]
var arr_str2 = Array.from(str2);
console.log(arr_str2);
console.log("------------------------------------------------");
// Array.from(参数1,参数2)
// 参数1:必填 ; 参数2:可选择
// Array.from()方法会遍历数组中的每一个元素,每遍历到一个元素,就会执行一次回调函数。最终会将处理过后的数据放入新数组中返回出去。
var newArr = Array.from(str2, function (value, key) {
// console.log(value); // 指的是数组中的元素
// console.log(key); // 指的是数组中元素的索引
return value * 2;
});
console.log(newArr);
// 2.arr1.concat(arr2) 连接多个数组,形成一个新数组
var arr1 = ["a", "b", "c"];
var arr2 = [1, 2, 3];
var newArr2 = arr1.concat(arr2);
console.log(newArr2);
// 3.join()用不同的分隔符,将数组构建成一个字符串
var arr3 = ["2020", "12", "21"];
// 2020/12/21
var str3 = arr3.join("-");
console.log(str3);
// 4.判断某个数据是否 是数组,如果是,返回true,否则 返回false
console.log(Array.isArray(str));
// 5.数组的反转
var arr4 = ["a", "b", "c", "d"];
console.log(arr4.reverse());
// 6.sort()数组排序,默认排列顺序是按照字符的Unicode编码进行排列
var arr5 = [20, 31, 11, 100, 8, 27];
console.log(arr5.sort());
// 如果要得到我们想要的 升序/降序排列的结果,需要提供一个比较函数。
// [8,11,20,27,31,100]
function sortNum(a, b) {
// return a - b; //升序
return b - a; //降序
}
console.log(arr5.sort(sortNum));
// 7.splice(参数1,参数2,参数3,参数4...) 删除开始索引后的 某几个元素,然后再插入新的元素。(注意:是在原数组上进行修改,不会反回新数组)
// 参数1:从哪开始删除
// 参数2:删除几个元素
// 从第3个参数开始往后这些参数,表示要插入的元素
var arr6 = ["a1", "b1", "c1", "d1"];
arr6.splice(1, 3, "b", "c", "d", "e");
console.log(arr6);
// 8.slice(startIndex,endIndex) 截取数组中的某几个元素,形成新数组
// 注意:截取时,包含开头,不包含结尾。
var arr7 = ["a1", "b1", "c1", "d1"];
console.log(arr7.slice(0, 2));
// 总结: push pop shift unshift splice 这几个方法是直接修改原数组,不会返回新数组
// from concat sort slice 这几个方法,会给我们反回新数组,原数组保持不变。
// 9.数组遍历(迭代)的方法
// 9-1 for循环遍历数组
// 9-2 forEach(),与for循环类似
var arr8 = ["a", "b", "c", "d", "e", "f"];
arr8.forEach(function (value, index, array) {
// value: 指的是 数组中的元素
// index: 指的是 元素对应的索引号
// array:指的是 arr8
console.log(value);
// console.log(index);
// console.log(array);
});
var arr9 = [10, 22, 11, 43, 50];
// 求 arr9中元素的和是多少?
var sum = 0;
arr9.forEach(function (value) {
// sum += value;
sum = sum + value;
});
console.log(sum);
// 9-2 map() 映射,对数组中的每一个元素运行指点的函数,返回每次函数调用的结果,组成新数组。
var arr10 = [1, 2, 3, 4, 5]; //[2,4,6,8,10]
// 实现原理:
// var new_arr10 = [];
// for(var i = 0; i < arr10.length;i++){
// var item = arr10[i];
// var new_item = item * 2;
// new_arr10.push(new_item);
// }
var new_arr10 = arr10.map(function (value, index, array) {
return value * 2;
});
console.log(new_arr10);
// 9-3 filter() 筛选数组,返回一个新数组
// 该方法会对数组中的每一个元素运行指定的函数,将满足条件的元素组成新数组。
var arr11 = [20, 90, 72, 12, 43, 15, 30];
var new_arr11 = arr11.filter(function (value) {
return value % 2 === 0;
});
console.log(new_arr11);
// 实现原理:
// var newArr11 = [];
// for(var i = 0; i < arr11.length;i++){
// var item = arr11[i];
// if(item %2 === 0){
// newArr11.push(item)
// }
// }
// 9-4 some() 查找数组中是否有满足条件的元素,如果有,返回true,否则返回false。
// 在查找的过程中,如果查找到第一个满足条件的元素,就会终止循环。
var arr12 = [20, 30, 43, 33, 50, 2, 3, 4];
//
var flag = arr12.some(function (value) {
return value < 10;
});
console.log(flag);
// every() 与 some() 相似。
// 实现原理:
// function fun1(arr) {
// for (var i = 0; i < arr.length; i++) {
// if (arr[i] < 10) {
// return true;
// }
// }
// return false;
// }