检测对象中属性 if ('querySelector' in document) { document.querySelector("#id");} else { document.get
检测对象中属性
if ('querySelector' in document) { document.querySelector("#id");} else { document.getElementById("id");}
获取数组中最后一个元素
Array.prototype.slice(begin,end)
用来获取begin
和end
之间的数组元素
如果不设置end
参数,将会将数组的默认长度值当作end
值。但有些同学可能不知道这个函数还可以接受负值作为参数。如果你设置一个负值作为begin
的值,那么你可以获取数组的最后一个元素
var array = [1,2,3,4,5,6];var arr = array.slice(-1); // [6]console.log(arr)console.log(array)console.log(array.slice(-2)); // [5,6]console.log(array.slice(-3)); // [4,5,6]
数组截断
array.length 可用于锁定数组的大小
var array = [1,2,3,4,5,6];console.log(array.length); // 6array.length = 3;console.log(array.length); // 3console.log(array); // [1,2,3]
合并数组
一般情况之下会使用Array.concat()
这个函数并不适合用来合并两个大型的数组,因为其将消耗大量的内存来存储新创建的数组。在这种情况,可以使用Array.pus().apply(arr1,arr2)
来替代创建一个新数组。这种方法不是用来创建一个新的数组,其只是将第一个第二个数组合并在一起,同时减少内存的使用
var array = [1,2,3]; var array2 = [4,5,6]; array.push.apply(array, array2); console.log(array) //[1, 2, 3, 4, 5, 6]
将NodeList
转换成数组
如果你运行document.querySelectorAll(“p”)
函数时,它可能返回DOM元素的数组,也就是NodeList
对象。但这个对象不具有数组的函数功能,比如sort()
、reduce()
、map()
、filter()
等。为了让这些原生的数组函数功能也能用于其上面,需要将节点列表转换成数组。可以使用[].slice.call(elements)
来实现
var elements = document.querySelectorAll("p"); // NodeListvar arrayElements = [].slice.call(elements); // 方法一console.log(arrayElements)arrayElementsA = Array.from(elements); //方法二console.log(arrayElementsA)