1、数组创建方式
var arr = [];
var arr1 = new Array( )
数组:有序的数据类型,里面可以放任何数据类型;length 数组的长度 创建方式的区别
var arr = [1,2,3,4,"a",false] var arr1 = new Array(10) 如果只传了一个参数,那就是数组的lengthvar arr1 = new Array(1."as",5,45) 如果传了两个及以上的数据,那就是数组里面的数据
2、操作数组的数据(增删改查)
- 增
arr[0] = "hello" arr[1] = "ni" - 改
arr[1] = fine - 删
arr.length = 0 删除数组
3、简单操作数组的方法
1、删除数组的最后一项
语法:数组.pop() - 返回值:被删除的那一条数据 直接改变原数组
2、往数组的末尾添加一项
语法:数组.push() - 返回值:改变后的数组长度 直接改变原数组
3、删除数组的第一项
语法:数组.shift - 返回值:被删除的那一条数据 直接改变原数组
4、再数组的最前面添加一条数据
语法:数组.unshift - 返回值:改变后的数组长度 直接改变原数组
5、数组的切割
语法:数组.splice( ) - 如果只有一个参数,代表开始截取的位置,会从这个位置截取到最后
- 如果两个参数,第一个参数代表截取的初始位置,第二个是截取的个数
- 如果三个参数,第一个参数代表截取的初始位置,第二个是截取的个数,第三个是替换到截取位置的数据
- 返回值:截取的数据组成的一个新的数组 会改变原数组
6、indexOF( ) 查询数组里面有没有某一个数据
语法:数组.indexOf( ) 参数:要查询的数据- 返回值:如果有这个数据就返回这个数据的下标(索引), 如果没有就返回 -1 不改变原数组
7、concat( ) 拼接数据
var arr = ["ak",5,6]
var arr1 = [1,2,3,4]
var res = arr.concat(arr1)
console.log(res)
console.log(arr)
语法:arr.concat(要拼接得数据或者数组) - 返回值:拼接好数据的新的数组 不会改变原数组
8、join( ) 以某种符号把数组里面得数据连接成为一个字符串
语法:数组.join( ) 参数可以是任意字符串,如果没有参数,默认以 " , " 连接- 返回值:连接好的字符串 不会改变原数组
9、reverse( ) 反转数组
语法:数组.reverse( ) - 返回值:就是改变后的数组 会改变原数组
10、sort( ) 数组排序
语法:数组.sort( ) 参数接收的是一个function 这个function有两个参数 return a - b 从小到大 return b - a 从大到小- 返回值:就是改变后的数组 会改变原数组
var arr = [5,2,6,4,1,,78,46]
var res = arr.sort(function(a,b){
return a - b
})
console.log(res)
引用数据类型在内存当中的存储情况
- 引用数据类型:object arr function 。。。
- 内存分布为栈内存 和 堆内存
- 基本的数据类型存储在栈内存里面,引用数据类型在栈内存里面存储的是空间地址
两种常见的排序方法
var arr = [5,2,6,4,1,,78,46]
for(var i = 0 ; i < arr.length ; i++){
for(var j = 0 ; j < arr.length - 1 - i ; j++){
if(arr[j] > arr[j + 1]){
var temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
var arr = [5,2,6,4,1,,78,46]
for(var i = 0 ; i < arr.length ; i++){
var minIndex = i
for(var j = i + 1 ; j < arr.length ; j++){
if(arr[j] < arr[minIndex]){
minIndex = j
}
}
if(i !== minIndex){
var temp = arr[i]
arr[i] = arr[minIndex]
arr[minIndex] = temp
}
}
console.log(arr)
for in 循环遍历
var obj = {
name:"Bob",
age:48,
hobby:"play"
}
for(var key in obj){
console.log(obj[key])
}
遍历数组
var arr = ["小红","小黑","小白","小明"]
for(var key in arr){
console.log(key)
}
11、ES5新增的操作数组的方法
- every
- some
- forEach
- filter
- indexOf
- lastIndexOf
- isArray
- map
- reduce
- reduceRight
12、不改变原数组的方法
indexOf( ) concat( ) join( ) map( ) filter( ) some( ) every( ) slice( ) reduce( ) find( )
forEach( ) 有时会改变原数组,有时不会改变原数组
|