JavaScript数组
数组的概念
数组:就是将多个元素按一定顺序排列放到一个集合中,这个集合称之为数组。
数组的特性
数组是一个 有序 列表,可以在数组中存放 任意类型 的数据,并且数组的长度可以动态调整。
获取数组元素
格式:数组名[索引]
<script>
var arr = [1,23,4,5.6,'hello'];
console.log(arr[1]);
</script>
注意:数组索引是从 0 开始计数。
获取索引位置
indexOf():返回某个指定的字符串值在字符串中首次出现的位置。
<script>
var arr = [1,23,4,5.6,'hello'];
var a = arr.indexOf('hello');
console.log(a);
</script>
数组的截取
slice():从已有的数组中返回选定的元素。
<script>
var arr = [1,23,4,5.6,'hello'];
var slice = arr.slice(0,2);
console.log(slice);
</script>
注意:这里的截取为 [ ) 前包后开 形式,即包括前面取值不包括后面取值。
这里的(0,2),包括索引为0的元素,但不包括索引为2的元素。
元素的添加与删除
数组起始
unshift():在数组的前端添加一个或多个元素。
shift():删除数组中的第一个元素
<script>
var arr = [1,2,3,4,5,6,7,8,9];
arr.unshift('小明','小花','小草');
console.log(arr);
arr.shift();
console.log(arr);
</script>
注意:该方法并不会修改数组,而是返回一个子数组
数组末尾
push():在数组的末尾添加一个或多个元素。
pop():删除数组中的最后一个元素。
<script>
var arr = [1,2,3,4,5,6,7,8,9];
arr.push(10);
console.log(arr);
arr.pop();
console.log(arr);
</script>
指定位置
splice(index,howmany,item1,…,itemX):从数组中添加/删除项目,然后返回被删除的项目。
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的 位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目 数量。如果设置为 0,则不会删除项目。 |
item1, …, itemX | 可选。向数组添加的 新项目。 |
注意:会改变原始数组
添加:
<script>
var arr = ['A','C','E','D','B'];
arr.splice(2,0,'小花');
console.log(arr);
</script>
删除:
<script>
var arr = ['A','C','E','D','B'];
arr.splice(2,1);
console.log(arr);
</script>
替代:
<script>
var arr = ['A','C','E','D','B'];
arr.splice(1,3,'Z','W','K');
console.log(arr);
</script>
数组拼接
concat(arrayX,arrayX,…,arrayX):用于连接两个或多个数组。
arrayX:必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
注意:不会改变现有的数组。
var arr = ['小明','小花','老马'];
var strings = arr.concat([1,2,3,4]);
console.log(strings);
数组分隔
join(separator):把数组中的所有元素放入一个字符串。
separator:可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
注意:原数组不变。
var arr = ['A','C','E','D','B'];
var arr2 = arr.join('*');
console.log(arr2);
JavaScript对象
对象的特性
JavaScript的对象是 无序 属性的集合,由若干 键值对 组成,其属性可以包含基本值、对象或函数。
属性特性总结
1.对象的属性中包含特殊字符,使用单引号
<script>
//特点:键值对
var str = {
name:"张三",
birth:2000,
age:19,
school:'加里敦物理系',
height:2.1,
weight:150,
// 特殊字符
'char-acter ': 'music'
};
</script>
2.访问方式
console.log(str.name);
console.log(str["char-acter "]);
console.log(str['age']);
3.对象的属性是 动态 的。
str.age=222;
console.log(str);
4.属性的删除
delete
delete str.age;
console.log(str);
delete str['name'];
console.log(str);
注意:删除不存在的属性不会报错。
delete str['sex'];
console.log(str);
显示当前对象内容。
5.判断属性是否存在
in
注意:不加引号会报错。
console.log('name' in str);
如果有不存在对象中的属性判断为true时,可能是从父类Object继承来
console.log('toString' in str);