数组课堂笔记


// var arr = [1, 2, 3, true]; // 一维数组
// var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // 二维数组
// arr[4] = 4; // 数组的动态添加,之前学了push方法
// arr[arr.length] 等价于 arr.push
// var arr = [1,,,2,,] // 最后一个逗号后如果没有值,会被忽略
// arr.forEach // 用来遍历数组的元素,接受一个函数对象的参数,arr有多少个元素,函数就执行多少次
// 范例:
// arr.forEach(function (ele) {
// console.log(ele);
// });
// 补充说明:
// 1. 侵入式方法是指调用完该方法之后,源数组也被改变
// 2. 非侵入式方法是指调用完该方法之后,源数组不变
// arr.map // (侵入式) 用来映射数组里面的元素,并返回一个新的数组
// 范例:
// var newArr = arr.map(function (ele) {
// return ele + 100;
// });
// reverse // (非侵入式) 用来逆序
// slice // (非侵入式) 切片,接收两个参数,第一个是开始下标(包含该元素),第二个是结束下标(不包含该元素)
// filter // (非侵入式) 过滤
// 范例:
// 要求过滤掉数组里面的偶数
// var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// arr.filter(function (ele) {
// /*
// var result = (ele % 2 === 0);
// if (result) {
// return false;
// }
// else {
// return true;
// }
// */
// // 和上面被注释的代码是等价的
// return ele % 2 !== 0;
// });
// concat // 合并数组
// 范例:
// var arr1 = [1, 2, 3], arr2 = [4, 5, 6];
// var arr3 = arr1.concat(arr2); // [1, 2, 3, 4, 5, 6]


/*
every // 用来判断数组中的每一个元素是否都满足某个条件,类似于逻辑与(且)
范例:
// 判断所有学生是否都及格了。
var arr = [56, 60, 80, 90, 100];
arr.every(function (e) {

return e >= 60;

});

some // 用来判断数组中是否有某个元素满足条件,类似于逻辑或
范例:
// 判断是否有满分的学生
var arr = [56, 60, 80, 90, 100];
arr.some(function (e) {

return e === 100;

});

reduce // 用来将数组中的元素归纳为一个值
范例:
// 计算学生总分
var arr = [56, 60, 80, 90, 100];

arr.reduce(function (a, b) {

return a + b;

});

reduceRight // 同reduce唯一的区别就是从右往左拿,其他功能保持一致

Array.isArray // 判断某个对象是否为数组,true:是, false:否
范例:
var arr = [1, 2, 3, 4, 5];
Array.isArray(arr); // 返回true
var str = "abc";
Array.isArray(str); // 返回true

indexOf // 用来查找某个元素在该数组中的下标,从左往右,找到第一个为止,若找不到则返回-1
范例:
var arr = ["a", "b", "c", 3, "b", 2, 1, "b", 3, 5,"b", 6];
arr.indexOf("b"); // 返回1
arr.indexOf("b", 2); // 返回4
arr.indexOf("b", -7); // 返回7
lastIndexOf // 同indexOf唯一的区别就是从右往左找,其他功能保持一致
*/

posted @ 2018-05-14 15:35  溪西  阅读(142)  评论(0编辑  收藏  举报