1.数组操作
1.1简单的数组操作
- 1.Array.length() 赋一个新的值,会导致Array大小的变化
- 2.arr.indexOf(arg) 获取参数索引值,这个和字符串一样
- 3.arr.slice(0, 3) 截取数组的某一部分,和字符串的substring()一样 取头不取尾,* 不改变原数组,返回新的数组
- 4.arr.push(‘A’, ‘B’) 向数组尾部添加,直接改变原数组,返回新数组长度
- 5.arr.pop() 把Array的最后一个元素删除掉,返回被删掉的元素
- 6.arr.unshift(‘A’, ‘B’) 向数组头部添加,直接改变原数组,返回新数组长度
- 7.arr.shift() 把Array的第一个元素删除掉,返回被删掉的元素
- 8.arr.reverse() 反转数组
- 9.arr.splice(2, 3, ‘a’, ‘b’) 从索引2开始删除3个元素,然后再添加两个元素,直接改变原数组,返回删除的元素
- 10.arr1.concat(arr2) 把arr1和arr2连接起来,不改变原数组,返回新的数组
- 11.arr.join(’-’) 把arr里边的元素按照 '-'连接起来,不改变原数组,返回字符串,不能给字符串用
var arr = [‘A’, ‘B’, ‘C’, 1, 2, 3];
arr.join(’-’); // ‘A-B-C-1-2-3’
1.2参数是函数的数组函数
-
1.map/reduce
Array.map(): 一个一个的遍历数组Array里的值,一个一个的输出,返回新数组
Array.reduce(): 把结果继续和序列的下一个元素做累积计算 返回新数组
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4) -
2.filter()
Array.filter(): 把传入的函数依次作用每个元素,根据返回值—true/false决定保留还是丢弃,不改变原数组,for循环循环嵌套太深可以用filter筛选 -
3.Array.sort()
对当前数组排序,直接改变原数组,返回排序好的 -
4.Array
Array.every():判断数组的所有元素是否满足测试条件。返回布尔值
Array.some()
Array.find():查找符合条件的第一个元素,找到了,返回这个元素,否则,返回undefined
Array.findIndex():查找符合条件的第一个元素,返回元素的索引,如果没有找到,返回-1
iterable.forEach() : map返回数组,forEach单个返回
2.字符串操作
- 1.模板字符串
还可以换行
- 2.求字符串的长度 string.length()
- 3.变为大写 string.toUpperCase()
- 4.变为小写 string.toLowerCase()
- 5.‘hello’.indexOf(‘e’) //1 搜索指定字符串出现的位置
- 6.‘hello’.substring(0,1) 返回’h’, 不改变原字符串
- 7.s.replace(“找到字符串”, “替换成我”) //第一个参数通常是正则
- 8.‘a b c’.split(’ '); // [‘a’, ‘b’, ‘’, ‘’, ‘c’]
3.对象操作
-
1.通过Object.keys和Object.values分别获取对象所有的key值和value值,返回数组
const user = {
name: ‘jayChou’,
job: ‘singer’,
song: ‘七里香’
};
let userKeys = Object.keys(user); //[‘name’, ‘job’, ‘song’]
let userValues = Object.values(user); //[‘jayChou’, ‘singer’, ‘七里香’] -
2.通过Object.entries把对象转换成key/value对数组
const user = {
name: ‘jayChou’,
job: ‘singer’,
song: ‘七里香’
};
let userKeys = Object.entries(user); //[[‘name’,‘jayChou’],[‘job’, ‘singer’], [‘song’, ‘七里香’]] -
3.通过解构赋值过滤对象属性
const {address, …user} = {
name: ‘jayChou’,
job: ‘singer’,
song: ‘七里香’,
address: ‘台湾’
};
console.log(user) // {name: ‘jayChou’,job: ‘singer’,song: ‘七里香’}