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() copyWithin() entries() every() fill() filter() find() findIndex() forEach() from() includes() indexOf() isArray() join() keys() lastIndexOf() map() pop() push() reduce() reduceRight() reverse() shift() slice() some() sort() splice() toString() unshift() valueOf()


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() 返回数组对象的原始值。这个函数没啥用

posted @ 2022-09-02 11:49  jqynr  阅读(29)  评论(0)    收藏  举报