js数组使用[ ]
数组中可以存储任意类型的值,每一个值都称之为数组元素。
数组中每个元素之间英文逗号隔开。
数组中每一个元素都有一个位置,这个位置称之为下标/索引,索引从0开始。
js中数组是变长的
千万不要直接给数组名赋值,否则数组中的元素就会消失被所赋的值所替换。
创建方法:
var arr = [1,2,3];
构建函数方式创建数组:
var arr1 = new Array( 1,2,3,4);
只传入一个参数时,默认的是数组长度,传入多个数值时并且逗号隔开,就是正常数组
length属性:返回数组长度。数组自带length属性,既可以获取又可以设置
可以通过length来给数组设置长度。如果设置的数组长度比原来数组的长度要长,会使用空值(empty)填充数组填充的数据默认为undfeined类型
如果设置的数组长度,小于原来的长度,会移除后面的元素。
把数组1赋值给数组2,改变数组2的最大长度也会改变数组1的长度。
改变数组长度的方法:
1.改变length的值
2.修改索引,追加元素。加入索引没有被占用就会添加元素,索引被占用就会替换元素。
arr.length--:删除数组末尾最后一项。
数组遍历:
1.for循环遍历
2.for in循环for(var i in score){ document.write(score[i]); }
通过遍历将数组的每个元素赋值给数组2,这时两个数组不相等输出false。直接把数组1赋值给数组2,这时两个数组相等输出true。
数组方法:
push();
作用:将一个或多个元素添加到数组结尾,并返回新数组长度
参数:可以传一个或多个参数
是否改变原数组:改变
返回值:有返回值,值是新数组的长度console.log(a.push(5));就会输出新数组的长度。
var a = [1,2,3,4];
a.push(5,6);
pop();
作用:移除数组中最后一个元素,并返回该元素的值
参数:无,可以传但是无效
是否改变原数组:改变
返回值:返回删除的那一项的值
删除数组最后一项还可以让arr.length--;这样也是可以删除数组最后一项的
a.pop( );
unshift(元素):
作用:将新元素添加到数组的开始,其他元素后移,然后返回数组长度
参数:可以传递一个或多个参数
是否改变原数组:改变
返回值:返回增加后的数组的长度。
a.unshift(22,22,33,44);
shift()
作用:移除数组中最开始的值,数组中其他元素自动迁移, 并返回该元素的值
参数:无
是否改变原数组:改变
返回值:返回删除的哪一项。
a.shift( );
splice:可以实现数组的增加删除修改
splice(开始位置,删除长度)
作用:从当前索引开始删除n项。
参数:开始索引,删除个数
是否改变原数组:改变
返回值:把删除的每一项以一个新的数组返回,没有删除返回空数组,删除的东西包括设置的开始索引对应的数据
splice(开始的位置索引,删除的长度)
splice(当前索引,删除长度,替换的值)
作用:删除以后添加元素替换
参数:索引,长度,替换值
是否改变数组:改变
返回值:把删除的每一项以一个新的数组返回
splice(当前索引,删除长度,替换的值)
splice(当前索引,0,替换值)
作用:如果删除长度为0,则代表方法不删除元素,并在设置的位置之前插入内容
参数:开始索引,0,内容
是否改变原数组:改变
返回值:空数组
splice(开始索引,0,替换值)
concat()
作用:链接两个数组,返回新数组,
不会改变原来的数组。
var c = a.concat(b);
indexOf(数组中的某个数据)
数组元素字符串化:
join(“分隔符”)
作用:用分隔符,组合数组元素形成字符串。省略分隔符的话则默认用逗号隔开。
原数组不改变
var b = a.join("/");
reverse();
作用:翻转元素(最前的排到最后,最后的排到最前),返回数组地址,但是是以数组的形式输出的。
会改变原数组
a.reverse();
sort();
如果数组的方法在调用后 并没有返回新数组,证明该方法更改了原数组
slice(开始索引,结束索引)
作用:数组的截取,从开始的索引截取到结束的索引(不包含结束索引)
返回值:将截取的每一个项以一个新的数组返回,没有截取到返回空数组
不改变原数组,只是截取当中的部分元素
不传递参数,默认从索引0到数组末尾
传递一个参数:从参数索引开始到末尾
传递负数:数组最后一项为-1
arr.slice(1,3);