Array对象1,js
参考:
https://www.runoob.com/jsref/jsref-obj-array.html
属性
constructor 返回创建数组对象的原型函数。
length 设置或返回数组元素的个数。
prototype 允许你向数组对象添加属性或方法。
Array.prototype.name = 2222 const arr = [1,2,3,4,5,6,7] console.log(arr.name)
方法:
concat() 连接两个或更多的数组,并返回结果。
const arr1 = [1, 2, 3, 4, 5, 6, 7]; const arr2 = [8, 9]; console.log(arr1.concat(arr2));
copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。(target,start,end)
let arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.copyWithin(2)); // [1, 2, 1, 2, 3, 4, 5] arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.copyWithin(2, 3)); // [1, 2, 4, 5, 6, 7, 7] arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.copyWithin(2, 0, 2)); // [1, 2, 1, 2, 5, 6, 7]
entries() 返回数组的可迭代对象。可以使用 next() 方法
let arr = [1, 2, 3, 4, 5, 6, 7]; let ent = arr.entries() console.log(ent.next(),ent.next())
// 打印出一个对象,{value:[0,1],done:fasle};数组遍历完成后返回,{value:undefined,done:true}
every() 检测数值元素的每个元素是否都符合条件,需要一个函数作为参数返回boolean值
let arr = [1, 2, 3, 4, 5, 6, 7]; let check = (num)=>{ return num > 0 } console.log(arr.every(check)) // true/false
fill() 使用一个固定值来填充数组。参数(value,start,end),后两个参数可选
let arr = [1, 2, 3, 4, 5, 6, 7]; arr.fill(22,2,4) console.log(arr) // [1, 2, 22, 22, 5, 6, 7]
filter() 检测数值元素,并返回符合条件所有元素的数组。函数作参数返回数组
let arr = [1, 2, 3, 4, 5, 6, 7]; let arr1 = arr.filter((num) => { return num > 3; }); console.log(arr1); // [4, 5, 6, 7]
find() 返回符合传入测试(函数)条件的数组元素。和filter差不多,返回查到的第一个元素
let arr = [1, 2, 3, 4, 5, 6, 7]; let arr1 = arr.find((num) => { return num > 3; }); console.log(arr1); // 4
findIndex() 返回符合传入测试(函数)条件的数组元素索引。和find差不多,返回查到的第一个元素的索引
let arr = [1, 2, 3, 4, 5, 6, 7]; let arr1 = arr.findIndex((num) => { return num > 3; }); console.log(arr1); // 3
forEach() 数组每个元素都执行一次回调函数。
let arr = [1, 2, 3, 4, 5, 6, 7]; arr.forEach((item,index,arr) => { console.log(arr[index] == item) });
// true 循环七遍,当然item和index不同,后两个参数可选
from() 通过给定的对象中创建一个数组。
let strarr = Array.from("abcdefg"); console.log(strarr); // ["a", "b", "c", "d", "e", "f", "g"] let setarr = Array.from(new Set(["a", "b", "c"])); console.log(setarr); // ["a", "b", "c"] strarr = Array.from("abcdefg", (x) => x + 1); console.log(strarr); // ["a1", "b1", "c1", "d1", "e1", "f1", "g1"] // 和set对象实现数组去重 * let arr = Array.from(new Set([1, 2, 1, 2])) console.log(arr) //[1, 2]
includes() 判断一个数组是否包含一个指定的值。
let arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.includes(3)) // true
indexOf() 搜索数组中的元素,并返回它所在的位置。第二个参数可选,开始的位置
let arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.indexOf(3,0)) // 2 如果没有找到就返回 -1
isArray() 判断对象是否为数组。
let arr = [1, 2, 3, 4, 5, 6, 7]; console.log(Array.isArray(arr)) // true
join() 把数组的所有元素放入一个字符串。参数可不填,默认是逗号 ,
let arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.join('+')) // 1+2+3+4+5+6+7
keys() 返回数组的可迭代对象,包含原始数组的键(key)。可迭代的次数和数组长度一致
let arr = [1, 2, 3, 4, 5, 6, 7]; let ite = arr.keys() console.log(ite.next()) // {value: 6, done: false} / {value: undefined, done: true}
lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。与index相反,第二个参数也是反着数的
let arr = [1, 2, 3, 4, 5, 6, 7, 3]; console.log(arr.indexOf(3, 3), arr.lastIndexOf(3, 3), arr.lastIndexOf(3)); // 7 2 7
map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
let arr = [1, 2, 3, 4, 5, 6, 7]; let arr1 = arr.map((item) => { return item + 1; }); console.log(arr1,arr); // [2, 3, 4, 5, 6, 7, 8] [1, 2, 3, 4, 5, 6, 7]
pop() 删除数组的最后一个元素并返回删除的元素。
let arr = [1, 2, 3, 4, 5, 6, 7]; let val = arr.pop(); console.log(val, arr); // [1, 2, 3, 4, 5, 6]
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
let arr = [1, 2, 3, 4, 5, 6, 7]; let val = arr.push('8',9,['55']); console.log(val, arr); // 10 [1, 2, 3, 4, 5, 6, 7, "8", 9, Array(1)]
reduce() 将数组元素计算为一个值(从左到右)。
let arr = [1, 2, 3, 4, 5, 6, 7]; let result = arr.reduce((total, num) => { return total - num; }); console.log(result); // -26
reduceRight() 将数组元素计算为一个值(从右到左)。
let arr = [1, 2, 3, 4, 5, 6, 7]; let result = arr.reduceRight((total, num) => { return total - num; }); console.log(result); -14
reverse() 反转数组的元素顺序。
let arr = [1, 2, 3, 4, 5, 6, 7]; arr.reverse(); console.log(arr); // [7, 6, 5, 4, 3, 2, 1]
shift() 删除并返回数组的第一个元素。与pop相反
let arr = [1, 2, 3, 4, 5, 6, 7]; let val = arr.shift(); console.log(val,arr); // 1 [2, 3, 4, 5, 6, 7]
slice() 选取数组的一部分,并返回一个新数组。(开始位置,结束位置)不包含结束位置
let arr = [1, 2, 3, 4, 5, 6, 7]; let arr1 = arr.slice(2,4); let arr2 = arr.slice(-4,-2); //还是从左往右数 let arr3 = arr.slice(4); console.log(arr1,arr2,arr3,arr); // [3, 4] [4, 5] [5, 6, 7] [1, 2, 3, 4, 5, 6, 7]
some() 检测数组元素中是否有元素符合指定条件。和every相似,every是要所有元素都符合,some是只要有一个符合
let arr = [1, 2, 3, 4, 5, 6, 7]; let ret = arr.some((item)=>{ return item == 3 }) console.log(ret) // true
sort() 对数组的元素进行排序。
let arr = [7, 1, 2, 3, 4, 5, 6, 7]; arr.sort() // 升序 arr.reverse() // 降序 arr.sort(function(a,b){return b-a}) // 函数规定排序顺序,数字排序,b-a是降序,a-b是升序 console.log(arr) // [7, 7, 6, 5, 4, 3, 2, 1]
splice() 从数组中添加或删除元素。(操作位置,删除个数,...需要添加的元素),第三个参数可选
let arr = [1, 2, 3, 4, 5, 6, 7]; arr.splice(2, 1, 8, 9, 10); console.log(arr); // [1, 2, 8, 9, 10, 4, 5, 6, 7]
toString() 把数组转换为字符串,并返回结果。
let arr = [1, 2, 3, 4, 5, 6, 7,['c','6',['ff'],{cc:'dd'}],{cc:'dd'}]; let arr1 = arr.toString() console.log(arr,arr1) // [1, 2, 3, 4, 5, 6, 7, Array(4), {…}] "1,2,3,4,5,6,7,c,6,ff,[object Object],[object Object]" 不改变原数组,支持多维数组,不支持对象
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
let arr = [1, 2, 3, 4, 5, 6, 7]; arr.unshift(9,8) console.log(arr) // [9, 8, 1, 2, 3, 4, 5, 6, 7]
valueOf() 返回数组对象的原始值。这个函数没啥用

浙公网安备 33010602011771号