js生涯

67 阅读6分钟

今天我们来探讨一下对象和数组

首先我们要明白什么是对象,对象就是存储数据的一个集合(引用数据类型)

对象的创建

字面量方式 var obj = {}

内置构造函数 var obj = new Object()、注意内置构造函数中的Object的O要大写

创建一个有值的对象 注意对象的键值对之间用逗号隔开

name (键名)也叫属性 age(值)也叫属性值

也有叫 key value

var obj1 = {
 name : 'jack,
 age : 18
}

对象的增删改查(点语法)

语法 :对象.属性名 = 属性值

obj.love = 'js'
console.log(obj)

语法 :对象.属性名 = 属性值

obj.name = 'rose'
console.log(obj)

语法 :对象.属性名

obj.name = 'rose'
console.log(obj.name)

语法 :delete 对象.属性名

delete obj.name = 'rose'
console.log(obj.name)

注意删除的是一条属性,而不是把对象清空

中括号语法

语法 :对象["属性名"] = 属性值

obj['love'] = js
console.log(obj)

改 语法 :对象["属性名"] = 属性值

obj['love'] = js
console.log(obj)

语法 :对象['属性名']

obj['name']
console.log(obj['name'])

语法 :delete 对象['属性名']

delete obj['name']
console.log(obj)

遍历对象

var obj = {
  name : 'jack',
  age : 25
}
for(var k in obj){
console.log k //打印键名
console.log(obj[k]) //打印键名对应的值
}

数组

什么是数组?

存放数据的一个集合(引用数据类型)

创建数组的两种方式

字面量方式创建

var arr = [1,2,3,]

内置构造函数方式

var arr1 = new Array()

数组的 length属性(也就是数组的长度)

var arr = new Array()
console.log(arr.length)//0
var arr1 = new Array(30)
console.log(arr1.length)//empty * 30
var arr2 = [1,2,3,4,5]
console.log(arr2.length)//5

数组索引

一个数据在数组中的哪一个位置,数组索引从0开始

var arr2 = [1,2,3,4,5]
           0 1 2 3 4 //对应的索引

遍历数组

var arr2 = [1,2,3,4,5]
for(var i = 0; i < arr.length; i++){
console.log(i)//打印出数组对应的索引
console.log(arr[i])//打印出数组对应的索引对应的值
}

数组常用方法

1. push
         语法 数组.push(要插入的数据)
         作用: 向数组末尾添加数据
         返回值 追加数组后,数组最新长度(leghth)
      2.pop
         语法 数组.push()
         作用: 删除数组最后一条数据
         返回值 被删除的数
      3.unshift
         语法 数组.unshift(要添加的数据)
         作用: 向数组开头添加数据
         返回值 追加数组后,数组最新长度(leghth)
      3.shift
         语法 数组.shift()
         作用: 删除数组第一条数据
         返回值 被删除的数
      5.reverse()
         语法 数组.reverse()
         作用: 翻转数组
         返回值 翻转后的数组
      6.sort()
         语法1. 数组.sort()
         语法2. 数组.sort(function(a,b) {return a - b})
         //如果有不能转化的数据,就会按照初始的位置排列
         //会按照数字大小升序排列
         语法3. 数组.sort(function(b,a) {return b - a})
          //会按照数字大小降序排列
         作用: 不传数据会将数据转化为字符串后一位一位的输出
         返回值 排序后的数组
      7.splice  
         语法 数组.splice(开始索引,多少个)
         语法 数组.splice(开始索引,多少个,插入数据1,插入数据1...)
         作用: 截取数组的部分内容
         作用: 截取数组的部分内容,并插入新的数据
         返回值 截取出来的部分内容组成的新数组
      8.splice  
         语法 数组.slice(开始索引,结束索引)
         作用: 截取数组的部分内容
         返回值 截取出来的部分内容组成的新数组   
         面试题,数组中有两个方法 splice和slice 的区别
         spilce会改变数组,slice不会改变数组
         介绍两者的区别

      9.concat
         语法 原始数组.concat(数组1,数组2...,数据1,数据2)
         作用: 进行数据拼接,把数组...数据之类的小括号里的内容,拼接到原始数组中
         返回值 拼接好的数组
      10.join
         语法 数组.join(连接符)
         作用: 使用连接符,把数组内符每一个数据连接成一个字符串,(不写连接符默认使用的是逗号)
         返回值 拼接好的字符串    
      11.indexof(语法1)
         语法 数组.indexof(要检查的数据)
         作用: 从前到后,(从左到右)检测该数据第一次在该数组中出现的索引
         返回值 找到返回该数据在数组内第一次出现的下标 没有找到返回-1
         语法 数组.indexof(要检查的数据,开始索引)开始索引不写默认是0
         作用: 在开始索引的位置,按照从左到右的顺序检查该数据第一次在该数组内出现的索引     
      12.lastindexof
         语法 数组.indexof(要检查的数据,开始索引)开始索引不写默认是0         
         作用: 从后到前,(从右到左)检测该数据第一次在该数组中出现的索引
         返回值 找到返回该数据在数组内第一次出现的下标 没有找到返回-1


数组遍历的方法

```js
forEach()

语法 数组.forEach(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 遍历数组

返回值 没有返回值

 map()

语法 数组.map(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 映射数组

返回值 映射好的数组

查找条件以return 形式出现

find()

语法 数组.find(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 在数组内寻找满足条件的第一项

返回值 找到的数据 如果没找到返回undefiend

查找条件以return 形式出现

filter()

语法 数组.filter(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 过滤数组

返回值 返回有个新数组,内部存储的是原始数组过滤出来的部分内容

查找条件以return 形式出现

findIndex()

语法 数组.findIndex(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 在数组内寻找满足条件的第一项的下标

返回值 找到的数据 如果没找到返回 -1

查找条件以return 形式出现

 every()

语法 数组.every(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 查找数组内的数据是否都满足要求

返回值 一个布尔值 true/ false

查找条件以return 形式出现

 some()

语法 数组.some(function (item,index,origin){})

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 查找数组内的数据是否有一个满足要求

返回值 一个布尔值 true/ false

查找条件以return 形式出现

reduce()

语法 数组.reduce(function (prev,item,index,origin){})

prev 表示数值或上一次的运算结果

index 数组每一项对应下标

item 数组内每一项的值

origin 原始数组

作用 用来实现叠加效果

返回值 最终的叠加效果

查找条件以return 形式出现