10.15
一、push()
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
用法
array.push(item1, item2, ..., itemX)
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi","Lemon","Pineapple")
//输出:Banana,Orange,Apple,Mango,Kiwi,Lemon,Pineapple
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
用法:
array.unshift(item1,item2, ..., itemX)
二、Array.from()
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组,也是ES6的新增方法。
用法:
Array.from(object, mapFunction, thisValue)
//object:要转换为数组的对象。
var setObj = new Set(["a", "b", "c"]);
var objArr = Array.from(setObj);
objArr[1] == "b"; // true
var arr = Array.from([1, 2, 3], x => x * 10);
// arr[0] == 10;
// arr[1] == 20;
// arr[2] == 30;
三、set函数
JavaScript 的 Set(集合)是一组唯一值的集合。
每个值只能在 Set 中出现一次。
Set 可以容纳任何数据类型的值。
用法
// 创建 Set
const letters = new Set();
// 将值添加到 Set
letters.add("a");
letters.add("b");
letters.add("c");
//迭代器?
四、flat()
按照一个可指定的深度递归遍历数组
用法
flat()
flat(depth) //depth默认值为 1
五、map()
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
六、Array flatMap()
使用映射函数映射每个元素,然后将结果压缩成一个新数组
用法
const arr1 = [1, 2, [3], [4, 5], 6, []];
const flattened = arr1.flatMap(num => num);
document.getElementById("demo").innerHTML = flattened;
//1,2,3,4,5,6
用法
array.map(function(currentValue,index,arr), thisValue)
var numbers = [4, 9, 16, 25];function myFunction() {
x = document.getElementById("demo") x.innerHTML =
numbers.map(Math.sqrt);}
//2,3,4,5
两者区别
let arr1 = ["it's Sunny in", "", "California"];
arr1.map(x => x.split(" "));
// [["it's","Sunny","in"],[""],["California"]]
arr1.flatMap(x => x.split(" "));
// ["it's","Sunny","in", "", "California"]
七、diff
八、some() / every()
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
some() 不会改变原始数组。
用法
array.some(function(currentValue,index,arr),thisValue)
ages.some(checkAdult)
不同点:
- every()是检测数组中所有元素都满足某一个指定函数的测试,只有所有元素全部满足才会返回true;
- some()是检测数组中所有元素只要有某个元素满足就返回true,如果全部不满足才返回false。
十、forEach()
forEach()没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。即map是返回一个新数组,原数组不变,forEach 是不改变原数组(尽管回调函数 callbackFn 在被调用时可能会改变原数组)。
不支持 continue,用 return false 或 return true 代替。
用法
array.forEach(callbackFn(currentValue, index, arr), thisValue)
<button onclick="numbers.forEach(myFunction)">点我</button>
<p id="demo"></p>
<script>
demoP = document.getElementById("demo");
var numbers = [4, 9, 16, 25];
function myFunction(item, index) {
demoP.innerHTML = demoP.innerHTML + "index[" + index + "]: " + item + "<br>";
}
</script>
十一、pow()
返回 4 的 3 次幂 (444):
用法
Math.pow(4,3);
//64
Math.pow(x,y)
十二、if continue
continue 用于跳过循环中的一个迭代,并继续执行循环中的下一个迭代。
continue 与 break 语句的区别是, break 是结束整个循环体,continue是结束单次循环。
continue 语句(不带标签引用),只能用在循环或 switch 中。
用法
var text = ""var i;for (i = 0; i < 5; i++) { if (i ==
3)
{ continue;
} text += "The number is " + i + "<br>";}
//The number is 0
//The number is 1
//The number is 2
//The number is 4