-
数组的遍历方法 * forEach; map; filter; find; findIndex; every; some; reduce;
1. forEach * * 语法: 数组.forEach(function(item, index, origin){}) * * 参数: * 1. 数组实际每一项的值 * 2. 数组每一项对应的下标 * 3. 原数组 * * 作用: 遍历数组 * * 返回值: 返回值是 undefined 哪怕你手写了 return 也是 undefined * 2. map * * 语法: 数组.map(function (item, index, origin) {}) * * 参数: * 1. 数组每一项实际的值 * 2. 数组每一项实际的值对应的下标 * 3. 原数组 * * 作用: 映射数组 * * 返回值: 返回一个和原数组长度一样的数组, 返回的数组的每一个值, 取决参 * 数的return怎么写 * 3. filter; * * 语法: 数组.filter(function (item, index, origin) {}) * * 参数: * 1. 数组每一项实际的值 * 2. 数组每一项实际的值对应的下标 * 3. 原数组 * * 作用: 过滤数组 * * 返回值: 过滤数组后的新数组, 过滤条件取决于 参数的 return 怎么写 * 4. find; * * 语法: 数组.find(function (item, index, origin) {}) * * 参数: * 1. 数组每一项实际的值 * 2. 数组每一项实际的值对应的下标 * 3. 原数组 * * 作用: 查找数据 * * 返回值: 在数组内找到的第一个数据(不是数组) * 5. findIndex; * * 语法: 数组.findIndex(function (item, index, origin) {}) * * 参数: * 1. 数组每一项实际的值 * 2. 数组每一项实际的值对应的下标 * 3. 原数组 * * 作用: 查找数据 第一次出现的 下标 * * 返回值: 在数组内找到的第一个数据出现的下标 * * 6. every; * * 语法: 数组.every(function(item, index, origin){}) * * 参数: * 1. 数组第一项实际的值 * 2. 数组第一项实际的值对应的下标 * 3. 原数组 * * 作用: 判断数组内数据是否全都满足条件 * * 返回值: 一个布尔值 * true ---> 数组内数据全都符合条件 * false ---> 数组内起码有一个数据 不符合条件 * * 7. some; * * 语法: 数组.some(function (item, index, origin) {}) * * 参数: * 1. 数组每一项实际的值 * 2. 数组每一项实际的值对应的下标 * 3. 原数组 * * 作用: 判断数组内数据是否 有一项 满足条件的 * * 返回值: 一个布尔值 * true: 表示数组内至少有一项满足条件 * false: 数组内数据全都不满足条件 * * 8. reduce; * * 语法: 数组.reduce(function (prve, item, index, origin) {}, init) * * reduce方法的参数: * 1. 如果传递第二个参数 init, 执行次数和数组长度相同 * 2. 如果不传递第二个参数 init, 默认第一值为数组第一项的值, 并且执行次数 在数组长度上 减1 * * 参数1的函数中4个形参的含义: * 1. 表示初始值或者数组第一项的值(具体是什么取决于是否传递 init) * 2. 数组每一项实际的值 * 3. 数组每一项实际的值对应的下标 * 4. 原数组 * * 作用: 累加(叠加) * * 返回值: 循环运行结束后得到的值 2. 字符串 * * 引号包裹的内容就是字符串 * 单引号; 双引号; 反引号`` 反引号的字符串也叫做 模板字符串(ES6新) * * * 以前的创建字符串方式 都是 通过 字面量 * * 新的创建方式 通过 内置构造函数 * * * 包装类型 * 字符串在正常查询使用的时候, 就是引号包裹起来的内容 * 但是如果想要使用字符串上的方法, JS 内部会先将字符串包装为一个字符串对象, * 这个对象上有一些方法, 使用完毕后, 将字符串对象恢复为普通对象 3. 字符集 * 把字符转为 二进制数字 存储起来 * * ASCII as key * 128个 * * * GBK 国标码 前 128 位 as key 从 129 开始 为汉字 * * * unicode (万国码) 前 128 位是 as key, 129开始是其他国家的编码 * 八位的十六进制编码 相对来说容量小, 但是占用内存也小 * 十六位的十六进制编码 相对来容量大, 但是占用内存也大 * * 八位的十六进制编码 UTF-8 4.* 字符串也是有length与下标的 * * length 长度 * * 索引(下标): 获取到字符串中指定位置的值 但是! 是只读 一.字符串的方法 * 1. charAt * * 语法: 字符串.charAt(索引) * * 作用: 查询指定下标的值 * * 返回值: 查询到的值, 没有查询到就是一个 空字符串 * 2. charCodeAt * * 语法: 字符串.charCodeAt(索引) * * 作用: 查询指定下标的值 对应的 十进制码 * * 返回值: 查询到的值对应的十进制码, 没有查询到就是 NaN * 3. toLowerCase * * 语法: 字符串.toLowerCase() * * 作用: 将字符串转换为小写 * * 返回值: 转换后的字符 * 4. toUpperCase * * 语法: 字符串.toUpperCase() * * 作用: 将字符串转换为大写 * * 返回值: 转换后的字符 * 5. substr // MDN 说明 这个方法将来的某一天可能会删除, MDN 推荐使用 substring * * 语法: 字符串.substr(开始索引, 多少个) * * 作用: 截取指定字符串 * * 返回值: 截取到的字符串 * * 6. substring * * 语法: 字符串.substring(开始下标, 结束下标) 参数包前不包后 * * 结束下标不传, 相当于写了 length * * 作用: 截取指定字符串 * * 返回值: 截取到的字符串 * * 7. slice * * 语法: 字符串.slice(开始下标, 结束下标) 参数包前不包后 * * 结束下标不传, 相当于写了 length * * 开始下标不传, 相当于写了 0 * * 作用: 截取指定字符串 * * 返回值: 截取到的字符串 * 8. concat * * 语法: 字符串.concat(数据1, 数据2, 数据3) * * 作用: 将字符串和 参数传递的数据 拼接 * * 返回值: 拼接后的字符串 * 9. indexOf * * 语法: 字符串.indexOf(数据, 开始下标) * * 作用: 寻找数据在字符串中的位置 * * 返回值: 找到的时候返回下标, 找不到返回 -1 * 10. lastIndexOf * * 语法: 字符串.lastIndexOf(数据, 开始下标) * * 作用: 寻找数据在字符串中出现的位置(倒叙查找) * * 返回值: 找到返回下标, 找不到返回 -1 * 11. split * * 语法: 字符串.split('符号') * * 参数如果传递的是 空字符串, 会将字符串全部分隔开 * * 作用: 在 字符串中找到分隔符, 将其分割, 并放置到数组中 * * 返回值: 数组形式的 * 12. trim * * 语法: 字符串.trim() * * 作用: 去掉字符串两侧的空格 * * 返回值: 将去掉空格的字符串返回 * * 13. trimStart ---> trimLeft() * * 语法: 字符串.trimStart() * * 作用: 去掉字符串左侧(开始位置)的空格 * * 返回值: 将去掉空格的字符串返回 * * 14. trimEnd ---> trimRight() * * 语法: 字符串.trimEnd() * * 作用: 去掉字符串右侧(结束位置)的空格 * * 返回值: 将去掉空格的字符串返回 * 15. includes * * 语法: 字符串.includes(字符串片段) * * 作用: 判断 当前字符串中 是否拥有 指定字符串 片段 * * 返回值: true ---> 拥有; false ---> 没有 * * 16. startsWith * * 语法: 字符串.startsWith('字符串片段') * * 作用: 查询字符串开头是不是 指定的 字符串片段 * * 返回值: true: 是开头; false: 不是开头 * * 17. endsWith * * 语法: 字符串.endsWith('字符串片段') * * 作用: 查询字符串结尾是不是 指定的 字符串片段 * * 返回值: true: 是结尾; false: 不是结尾 * * 18. replace * * 语法: 字符串.replace('要被替换的字符', '替换的字符') * * 作用: 找到当前字符串中第一个参数对应的值, 然后将其替换为 第二个参数传入的数据 * * 返回值: 替换完成的字符串 反转字符串: * 1. 转化为数组 字符串.split(分隔符) * 2. 反转数组 * 3. 将数组的每一项合并为一个字符串 案列: var str = 'aabbccdd' var str1 = str.split('') console.log(str1) var str2 = str1.reverse() console.log(str2) var str3 = str2.join('') console.log(str3)