1 - 数组
1.1 数组的概念
- 数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。
- 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。
- 数组是一种将一组数据存储在单个变量名下的优雅方式。
1.2 创建数组
JS 中创建数组有两种方式:
-
利用 new 创建数组
var 数组名 = new Array() ; var arr = new Array(); // 创建一个新的空数组
注意 Array () ,A 要大写
-
利用数组字面量创建数组
//1. 创建空的数组 var 数组名 = []; //2. 创建带初始值的数组 var 数组名 = ['小白','小黑'];
- 数组的字面量是方括号 [ ]
- 声明数组并赋值称为数组的初始化
- 这种字面量方式也是我们以后最多使用的方式
-
数组元素的类型
数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。
var arrStus = ['小白',12,true,28.9];
数组里面还可以放数组。
1.3 获取数组中的元素
索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)。
数组可以通过索引来访问、设置、修改对应的数组元素,
可以通过“数组名[索引]”的形式来获取数组中的元素。
注意:如果访问时数组没有和索引值对应的元素,则得到的值是undefined
1.4 遍历数组
-
遍历
数组遍历: 把数组中的每个元素从头到尾都访问一次(类似学生的点名)。
-
数组的长度
数组的长度:默认情况下表示数组中元素的个数
使用“数组名.length”可以访问数组元素的数量(数组长度)。
数组的长度 ≠ 索引号
注意:
-
此处数组的长度是数组元素的个数 ,不要和数组的索引号混淆。
-
当我们数组里面的元素个数发生了变化,这个 length 属性跟着一起变化
数组的length属性可以被修改:
-
如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素;
-
如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除
1.5 数组中新增元素
数组中可以通过以下方式在数组的末尾插入新元素:
数组[ 数组.length ] = 新数据;
不要直接给数组直接赋值(赋值了以后,数组所有的都没了)
【叽叽歪歪】没有追加,只有替换
注:冒泡排序
有和前面概念重复的,那就再看一遍,权当复习,这是二次编辑新加的笔记
1.6 数组对象
创建数组的两种方式
-
字面量方式
var arr = [1,"test",true];
-
new Array() (不常见)
var arr = new Array();
注意:上面代码中arr创建出的是一个空数组,如果需要使用构造函数Array创建非空数组,可以在创建数组时传入参数
参数传递规则如下:
-
如果只传入一个参数,则参数规定了数组的长度
-
如果传入了多个参数,则参数称为数组的元素
-
检测是否为数组
-
instanceof 运算符
-
instanceof 可以判断一个对象是否是某个构造函数的实例
var arr = [1, 23]; var obj = { }; console.log(arr instanceof Array); // true console.log(obj instanceof Array); // false
-
-
Array.isArray()
-
Array.isArray()用于判断一个对象是否为数组,isArray() 是 HTML5 中提供的方法
var arr = [1, 23]; var obj = { }; console.log(Array.isArray(arr)); // true console.log(Array.isArray(obj)); // false
-
第二种优先于第一种
添加删除数组元素的方法
- 数组中有进行增加、删除元素的方法,部分方法如下表
属性 | 描述 | 返回值 |
---|---|---|
push(参数1…) | 在数组 末尾 添加一个或者多个元素,修改原数组 | 返回新数组 |
pop | 删除数组最后一个元素,把数组长度减1,无参数,修改原数组 | 返回它删除的元素的值 |
unshift(参数1…) | 在数组 开头 添加一个或者多个元素,修改原数组 | 返回新数组 |
shift() | 删除数组的第一个元素,数组长度减1,无参数,修改原数组 | 并返回第一个元素的值 |
注意:push、unshift为增加元素方法;pop、shift为删除元素的方法
数组排序
属性 | 描述 | 返回值 |
---|---|---|
reverse | 颠倒数组中的元素,无参数 | 会改变原来的数组,返回新的数组 |
sort() | 对元素进行排序 | 会改变原来的数组,返回新的数组 |
注意:sort方法需要传入参数来设置升序、降序排序
- 如果传入“function(a,b){ return a-b;}”,则为升序
- 如果传入“function(a,b){ return b-a;}”,则为降序
数组索引方法
属性 | 描述 | 返回值 |
---|---|---|
indexOf() | 数组中查找给定元素的第一个索引 | 如果存在,返回索引号,如果不存在,返回-1 |
lastIndexOf | 数组中查找给定元素的最后一个索引 | 如果存在,返回索引号,如果不存在,返回-1 |
var arr = [1, 2, 3, 4, 5, 6, 7];
console.log(arr.indexOf(8)); //8在数组中找不到,所以返回的是-1
console.log(arr.indexOf(6));//6在数组中可以找到,所以返回6的索引号5
数组去重
<script>
var arr = [1, 2, 3, 4, 3, 2, 4, 5, 6, 7, 8, 9, 5];
function Unique(arr) {
//创建一个新数组,用来存放没有重复的数组
var newArr = [];
//遍历数组
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(Unique(arr)); //1,2,3,4,5,6,7,8,9
</script>
数组转换为字符串
属性 | 描述 | 返回值 |
---|---|---|
toString() | 把数组转换成字符串, ,分隔每一页 | 返回字符串 |
join( ‘分隔符’) | 用于把数组中的所有数据元素转换为一个字符串 | 返回字符串 |
注意:join方法如果不传入参数,则按照 “ , ”拼接元素
其他方法
属性 | 描述 | 返回值 |
---|---|---|
concat() | 连接两个或者多个数组,不影响原数组 | 返回一个新数组 |
slice() | 数组截取slice(begin,end) | 返回被截取的新数组 |
splice() | 数组截取splice(第几个开始,要删除的个数) |
【叽叽歪歪】
我
(;´д`)ゞ
/(ㄒoㄒ)/~~
(;´༎ຶД༎ຶ`)
(´థ౪థ)
σ༼༎ຶᴗ༎ຶ༽
ヘ(;´Д`ヘ)
ε(┬┬﹏┬┬)3
二次编辑个啥呀,没保存。。。。三次编辑。。。。