总结数组的一些属性和方法。分为表格索引和方法详解。
表格索引 ——>>点这里直达方法详解
| 属性/方法 | 描述 |
|---|---|
| constructor | 返回创建数组对象的原型函数。 |
| length | 设置或返回数组元素的个数 |
| prototype | 允许你向数组对象添加属性或方法 |
| concat() | 连接两个或更多的数组,并返回结果 |
| copyWithin() | 从数组指定位置拷贝元素到的另一个指定位置中。 |
| entries() | 返回数组的可迭代对象 |
| every() | 检测数值元素的每个元素是否符合条件 |
| fill() | 使用一个固定值来填充数组 |
| find() | 返回符合传入测试(函数)条件的数组元素 |
| findIndex() | 返回符合传入测试(函数)条件的数组元素索引 |
| forEach() | 数组每个元素都执行一次回调函数 |
| from() | 通过给定的对象中创建一个数组 |
| includes() | 判断一个数组是否包含特定的值 |
| indexOf() | 搜索数组中元素,并返回它所在的位置 |
| isArray() | 判断对象是否为数组 |
| join() | 把数组的所有元素放入一个字符串 |
| keys() | 返回数组的可迭代对象,包括原始数组的键(key) |
| lastIndexOf | 搜索数组中的元素,并返回它最后出现的位置 |
| map() | 通过指定函数处理数组的每个元素,并返回处理后的数组 |
| pop() | 删除数组的最后一个元素并返回删除的元素 |
| push() | 向数组的末尾添加一个或更多元素,并返回新的长度 |
| reduce() | 将数组元素计算为一个值(从左到右) |
| reverse() | 反转数组的元素顺序 |
| shift() | 删除并返回数组的第一个元素 |
| slice() | 选取数组的一部分,并返回一个新的数组 |
| some() | 检测数组元素中是否有元素符合指定条件 |
| sort() | 对数组元素进行排序 |
| splice() | 从数组中添加或删除元素 |
| toString() | 把数组转换为字符串,并返回结果 |
| unshift() | 将数组的开头添加一个或更多元素,并返回新的长度 |
| valueOf() | 返回数组对象的原始值 |
属性/方法详解
属性:
length : 设置或返回数组元素的个数
let arr = [1,2,3,4]
console.log(arr.length)
arr.length = 3
console.log(arr)
4
[1,2,3]
constructor : 返回创建数组对象的原型函数
let array = [2,1]
console.log(array.constructor)
ƒ Array() { [native code] }
prototype : 允许你向数组对象添加属性或方法
//构建了一个方法
Array.prototype.add = function() {
let res = 0
for (i = 0; i < this.length; i++) {
res = res + this[i]
}
return res
}
let arr = [1, 2, 3, 4]
console.log(arr.add())
10
方法-->改变原数组
push() : 向数组的末尾添加一个或更多元素,并返回新的长度
let arr = [1,2,3,4]
console.log(arr.push(5))
console.log(arr)
5
[1,2,3,4,5]
pop() : 删除数组的最后一个元素并返回删除的元素
let arr = ["a","b","c","d"]
console.log(arr.pop())
console.log(arr)
d
["a","b","c"]
unshift() : 向数组的开头添加一个或更多元素,并返回新的长度
let arr = [1, 2, 3, 4, 5]
console.log(arr.unshift("one","two"))
console.log(arr)
7
["one","two",1, 2, 3, 4, 5]
shift() : 删除并返回数组的第一个元素
let arr = ["one","two",1, 2, 3, 4, 5]
console.log(arr.shift())
console.log(arr)
one
["two",1, 2, 3, 4, 5]
<!-排序>
sort() : 对数组元素进行排序,默认升序
let arr = [4,1,2,3]
console.log(arr.sort())
console.log(arr)
[1, 2, 3, 4]
[1, 2, 3, 4]
splice() : 从数组中添加或删除元素
语法:array.splice(index,[num],[item1,item2...])
index:必需。代表添加/删除元素的位置,允许负数代表从末尾开始。
[num]:方括号代表可选。代表要删除的元素数量。0则低矮表不删除
[item1,item2...]:方括号代表可选。向数组添加的元素
//删除元素
let arr = [1,2,3,4,5,6,7,8]
console.log(arr.splice(1,3))
console.log(arr)
//从倒数第一开始删2个元素,
//但倒数第一开始只有一个元素,所以只删了8
console.log(arr.splice(-1,2))
console.log(arr)
[2, 3, 4]
[1, 5, 6, 7, 8] [8]
[1, 5, 6, 7]
//删除并添加
let arr = [1,2,3,4,5,6,7,8]
console.log(arr.splice(0,2,"元素"))
console.log(arr)
let array = [1, 2, 3, 4, 5, 6, 7];
console.log(array.splice(-2,3,'元素1','元素2'))
console.log(array)
[1,2]
['元素',3,4,5,6,7,8] [6,7] [1,2,3,4,5,'添加1','添加2']
//只添加不删除
let arr = [1,2,3,4,5,6,7,8]
console.log(arr.splice(1,0,'one','two'))
console.log(arr)
let array = [1, 2, 3, 4, 5, 6, 7];
console.log(array.splice(-1,0,"one"))
console.log(array)
[] //因为没删除所以返回结果为空
[1, 'one','two', 2, 3, 4, 5, 6, 7, 8]
[]
[1, 2, 3, 4, 5, 6, 'one', 7]
sort() : 对数组内的元素进行排序 return的值小于0时,不互换位置
let arr = [1, 9, 23, 58, 666, 154, 233]
//仅仅是arr.sort()是无法按大小正确排序的
arr.sort()
console.log(arr)
let arr = [1, 9, 23, 58, 666, 154, 233]
arr.sort(function(a, b) { return a - b })
console.log(arr)
let arr = [1, 9, 23, 58, 666, 154, 233]
arr.sort(function(a, b) { return b - a })
console.log(arr)
[1, 154, 23, 233, 58, 666, 9] [1, 9, 23, 58, 154, 233, 666]
[666, 233, 154, 58, 23, 9, 1]
reverse() : 颠倒数组内元素的顺序。
let arr = [5, 6, 2, 7]
arr.reverse()
console.log(arr);
[7,2,6,5]
() :
() :
() :
方法-->不改变数组
join() : 把数组的所有元素放入一个字符串,可以自定义拼接符号
let arr = [1,2,3,4]
let str = arr.join()
let str2 = arr.join('+')
console.log(arr)
console.log(str)
console.log(str2)
[1, 2, 3, 4]
'1,2,3,4'
'1+2+3+4'
toString() : 将数组转化为字符串,不能像join那样自定义字符串
let arr = ['hello','jack']
console.log(arr.toString())
console.log(arr)
hello,jack
['hello','jack']
toLocaleString() : 数组转字符串
let arr = [1,2,3,4]
console.log(arr.toLocaleString())
console.log(arr)
1,2,3,4
[1,2,3,4]
concat() : 合并两个或多个数组,返回一个新的数组
let arr1 = [1, 2, 3, 4]
let arr2 = [5, 6, 7, 8]
let arr3 = [9, 10, 11, 12]
//拼接一个或多个数组
let array123 = arr1.concat(arr2, arr3)
console.log(array123)
let array = arr1.concat('前', arr2, arr3, '后')
console.log(array)
//也可以用作字符串拼接数组,同样返回数组
let array2 = '数字有:'.concat(arr1)
console.log(array2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[1, 2, 3, 4, '前', 5, 6, 7, 8, 9, 10, 11, 12, '后']
查找:
indexOf() : 搜索数组中元素,并返回它所在的位置,找不到则返回-1
let arr = ["一","二","三","四","2",NaN]
console.log(arr.indexOf("二"))
//接受第二参数,表示从这开始查找
console.log(arr.indexOf("二",3))
//严格相等才行
console.log("寻找2:"+arr.indexOf(2))
//查不到NaN
console.log("查NaN:"+arr.indexOf(NaN))
console.log(arr)
1
-1
寻找2:-1
查NaN:-1
["一","二","三","四","五"]
lastIndexOf() : 搜索数组中的元素,并返回它最后出现的位置
let arr = ["一", "二", "三", "四", "三", "四", "2", NaN]
console.log(arr.lastIndexOf("三")) //4
console.log(arr.lastIndexOf("三", 3)) //2
//负数代表从倒数第5个开始往前查找
console.log(arr.lastIndexOf("三", -5)) //4
//NaN同样找不到。当然也要严格相等
console.log(arr.lastIndexOf(NaN))
includes() : 判断一个数组是否包含特定的值(弥补了indexOf的不足)
它能够识别NaN,而且返回值为true或者false。其余和indexOf相同
let arr = ["一","二","三","四","2",NaN]
console.log(arr.includes("二")) //true
console.log(arr.includes(NaN)) //true
console.log(arr.includes(2)) //false
() :
() :
() :
其他:
of() : 返回
() :
() :