# 数组
# 判断对象中是否含有某个属性
对象.属性名 === undefined true-> 不存在 false-> 存在
对象.hasOwnPropery('属性名') true-> 存在 false-> 不存在
'属性名' in 对象 true-> 存在 false -> 不存在
// 练习
var obj = {
name: '张三',
age: 18
};
obj.hasOwnProperty('name'); // --> true
obj.hasOwnProperty('id'); // --> false
# 对象中的方法
var person={
ename: 'tom',
say: function(){
// 访问当前对象的属性名,this指代当前所在的对象
this.ename
}
}
// 调用对象中的方法
person.say()
练习
- 创建一个圆对象,添加属性半径和圆周率,添加计算周长和面积两个方法,返回计算的结果。最后调用
# 数组
是有多个元素组成的集合,每个元素就是一个数据
# 创建数组
- 常规方式
// 创建数组并给数组元素赋值
var array = new Array();
array[0] = "Aftersoil";
array[1] = "wiki";
array[2] = "Sitio";
- 数组字面量
// 字面-隐式创建
var array = ["Aftersoil", "wiki", "Sitio"];
练习
- 创建数组,包含有多个商品的名称; 创建数组,包含多个城市的名称
// 访问数组中的元素
数组[下标] // 下标从 0 开始,不存在的元素返回 undefined
- 内置构造函数
var array = new Array("Aftersoil", "wiki", "Sitio");
// new Array(3) 初始化元素个数为3,可以添加更多个元素
练习
- 创建数组,包含有若干个图书名称;创建数组,初始化长度为5,添加5个场上位置。
- 创建数组并给数组元素赋值
数组.length // 获取数组中元素的个数
// 在数组的末尾添加元素
// 数组[ 数组.length ] = 值;
练习
- 创建一个空数组,使用数组长度添加多个国家名称
- 数组的分类
// 分为关联数组和索引数组
// 索引数组以0以上的整数作为下标
// 关联数组以字符串作为下标,只能单独的添加元素
# 遍历数组
# for-in
for(var key in 数组){
// key 下标
// 数组[key] 下标对应的元素
}
// 既可以遍历关联数组,也可以遍历索引数组
var array = ["Aftersoil", "wiki", "Sitio"];
for(var key in array){
console.log(key)
console.log(array[key])
}
# 循环
for(var i=0;i<数组.length;i++){
// i 下标
// 数组[i] 下标对应的元素
}
// 只能遍历索引数组
练习
- 创建数组,包含有多个国家,把所有的'中国'改为'china'
- 创建数组,包含有多个国家,查询出中国出现的次数
- 创建数组,包含多个数字,获取数组中的最大值
- 创建函数getAvg,传递一个参数(数组),返回平均值。
# 数组API(方法)
// API 应用程序编程接口,预定义好的一些方法或者函数
// 将数组中的元素按逗号组合成字符串
toString()
// 将数组中的元素按指定的字符组合成字符串,默认是逗号
join('-')
//拼接多个数组
concat(arr1,arr2)
// 截取数组中的元素,start开始的下标,end结束的下标,不包含end本身,如果是负数,表示倒数。end为空截取到最后。
slice(start,end)
// 删除数组中的元素,start开始的下标,count删除的长度,value删除后补充的元素;count为空删除到最后,start为负数表示倒数;返回删除的元素,原数组会发生变化。
splice(start, count, value1,value2..)
练习
- 创建数组a~g组成,每个字符是一个元素;分别截取cd,f,b;把截取的结果拼接成一个新数组
- 创建数组a~h,每个字母是一个元素,删除de,替换f为m,在下标为1的位置插入字母z
# 数组练习视频
# 视频 1
# 视频 2
# 视频 3
# 课后任务
练习
- 使用遍历数组,实现翻转数组中元素
- 使用冒泡排序将数组中的元素从小到大排序
- 冒泡排序
- 预习字符串API