//```ops
//title:js中数组的那些操作
//descr:JavaScript中那些数组array的操作
//```
//数组基础方法
/*
//filter()方法,与map方法类似,也是对数组中的每个元素执行相同的函数,将返回true的结果组合成一个新数组。
//map()方法,主要用于对每个数组里面的元素执行相同的函数来创建新的数组。
//forEach()方法,这个方法主要用于遍历数组。
//isArray()方法。这个方法主要用来判断变量是否是一个js数组
1:concat();//合并数组,可以合并一个或多个数组,会返回合并数组之后的数据,不会改变原来的数组
2:join();//功能:将数组转为字符串并返回转化的字符串数据,不会改变原来的数组;
3:pop();//功能:删除数组的最后一位,并且返回删除的数据,会改变原来的数组
4:shift();//功能:删除数组的第一位数据,并且返回删除的数据,会改变原来的数组。
5:unshift();//功能:在数组的首位新增一个或多数据,并且返回新数组的长度,会改变原来的数组
6:push();//功能:在数组的最后一位新增一个或多个数据,并且返回新数组的长度,会改变原来的数组
7:reverse();//将数组的数据进行反转,并且返回反转后的数组,会改变原数组
8:sort();//功能:对数组内的数据进行排序(默认为升序),并且返回排过序的新数组,会改变原来的数组
9:slice();//功能:截取指定位置的数组,并且返回截取的数组,不会改变原数组
10:splice();//功能:向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。
11:toString();//功能:将数组转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。不会改变原数组
12:valueOf();//功能:返回数组的原始值(一般情况下其实就是数组自身),一般由js在后台调用,并不显式的出现在代码中
13:IndexOf();//功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
14:lastIndexOf();//功能:lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
15:forEach();//功能:ES5新增的方法,用来遍历数组,没有返回值,
16:map();//map的回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回。
17:filter();//功能: 1.同forEach功能; 2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回
18:every();//功能:判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。
19:some();//功能:判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
20.reduce();//功能:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。
21.reduceRight()//功能:(与reduce类似)从数组的最后一项开始,向前逐个遍历到第一位,迭代数组的所有项,
*/
//## 数组遍历
//for 循环
for (let index=0; index < someArray.length; index++) {
const elem = someArray[index];
// ···
}
//for-in 循环
for (const key in someArray) {
console.log(key);
}
//数组方法 .forEach()
// forEach() 的主要缺点是:
// 不能在它的循环体中使用 await。
// 不能提前退出 .forEach() 循环。而在 for 循环中可以使用 break。
someArray.forEach((elem, index) => {
console.log(elem, index);
});
//for-of 循环(推荐 ECMAScript 6支持)
for (const elem of someArray) {
console.log(elem);
}
//数组的其他方法
//indexOf()访求 ,主要用于在数组中查找元素,并把元素的位置返回来。
//every()方法,主要用于检查数组中每个元素是否符合函数的条件,如果其中有一个不符合,则返回false
//reduce()方法,主要是对数组中的每个元素执行函数,生成一个值。例如,下面求数组元素的总和。
var numbers = [65, 44, 12, 4];
function getSum(total, num) {
return total + num;
}
numbers.reduce(getSum)