黑马程序员技术交流社区

标题: 【上海校区】-es5新增的一些数组的API(不全)- [打印本页]

作者: 梦缠绕的时候    时间: 2019-9-5 11:10
标题: 【上海校区】-es5新增的一些数组的API(不全)-
### es5新增的数组的api
+ indexOf() 搜索数组中的元素,并返回它所在的位置。
arr.indexOf(str,index)
参数: str为要查找的字符串        index为开始查找的下标 , index可省略

查找字符串a在数组中的位置,返回值为a在数组中第一次出现的位置的下标,如果没有找到字符串a,则返回-1
可用于去重:
var arr1 = [1,2,3,1,2,4,5,7];        //定义一个有重复字符的数组
var arr2 = [];        //定义一个空数组
for (var i = 0, k = arr1.length; i < k; i++) {
if (arr2.indexOf(arr1) == -1) {        //当arr2中没有字符arr1
arr2.push(arr1);        //将此字符添加进arr2中
}
}
console.log(arr2);        //打印arr2在控制台中

+ lastIndexOf()        搜索数组中的元素,并返回它最后出现的位置。
arr.lastIndexOf(str,index)
参数: str为要查找的字符串        index为开始查找的下标        index可省略

查找字符串str在数组中的最后出现的位置,返回值为str在数组中最后出现的位置的下标,
如果没有找到字符串str,则返回-1 或者可以说从数组的最后向数组的开始进行查找,
返回str在查找中第一次出现的位置的下标,如果没有找到字符串str,则返回-1

与indexOf结合可用于判断某个字符在数组中是否为唯一、或者判断数组中是否有重复的元素
// 判断字符串中的某个字符是不是唯一的
function onlyOne(arr, str) {
if (arr.indexOf(str) == arr.lastIndexOf(str)) {
console.log(str + "是惟一的");
} else {
console.log(str + "不是惟一的");
}
}
onlyOne(arr, "w");

// 从字符串中找出没有重复的字符。
for (var i = 0, k = str.length; i < k; i++) {
if (str.indexOf(str) == str.lastIndexOf(str)) {
console.log(str);
}
}

+ forEach()        遍历数组,并对数组的每个元素都执行一次回调函数。
arr.forEach(fuction(value, index, arr){})
参数: 为一个回调函数, 回调函数的参数: value为本次循环到的数组项
index为本次循环到的数组项的索引值(下标) arr为当前数组本身        index、arr可以省略

对数组arr进行遍历,并将每次循环得到的数组项以及索引传递给回调函数
当forEach()遍历的数组为空时,不会调用回调函数

+ map()        通过指定函数处理数组的每个元素,并返回处理后的数组。
array.map(function(currentValue,index,arr), thisValue)         
参数: 回调函数 、对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue,或者传入 null、undefined, 那么回调函数的 this 为全局对象。 thisValue可省略

为每个数组项执行一次回调函数,返回的是一个新数组、不会对原数组造成影响。
例如:
arr.map(function(value,index,arr){
return value + 1;//把数组的每一项加1 然后映射到一个新的数组 不影响原数组
})

+ reduce()        将数组元素计算为一个值(从左到右)。
array.reduce(function(acc,value,index,arr){}
参数: acc为一个累计器、value为当前数组项、index为当前数组项的下标、arr为当前数组        index、arr可以省略

根据回调函数的返回值来决定是累加、累减、累除、累乘还是累模....       
例: return acc + value;        //累加

+ filter()        检测数值元素,并返回符合条件所有元素的数组。
arr.filter(function(value,index,arr){})
参数: 为一个回调函数, 回调函数的参数: value为本次循环到的数组项
index为本次循环到的数组项的索引值(下标) arr为当前数组本身        index、arr可以省略
根据回调函数的条件过滤数组、返回值为一个通过过滤条件的数组项组成的新数组
例如: return value > 5        //返回值大于5的数组项组成的数组

不想敲了........
### 字符串的创建方法
创建字符串的方法:
字面量:
var str = "";
var str = String();
构造函数方法:
var str = new String()
### str.length;
字符串的长度str.length
### 字符串的api
1.字符串.charAt(index) 根据下标获取字符串的某一个字符 》 应用:
1判断字符串的首字母是否大写、
2任意给定的一串字母,统计字符串里面的大写字母和小写字母的个数
2.字符串.indexOf("") 查询字符再字符串中第一次出现的下标(如果没找到返回-1)
如果是两个参数。第二个参数代表从第几个查找。

应用:判断密码中是否含有特殊字符
字符串去重
3.字符串.lastIndexOf("") 查找字符再字符串中最后一次出现的位置
》 应用:判断字符串中的某个字符是不是唯一的
》 从字符串中找出没有重复的字符。
4.字符串.substring(start,end) 字符串的截取 (从start开始截取到end 不包括end)(不操作原字符串)
5.字符串.slice(start,end) 字符串的截取 (从start开始截取到end 不包括end)
(接受一个负的参数 -1代表从最后一个开始)(不操作原符串) str.slice(-3,-1) 倒数第三个不包括倒数第一个
6.字符串.substr(start,length) 从start开始截取长度为length的部分。
(如果参数是一个的情况下,是删除几个字符)(不操作原符串)
7.字符串.split(分隔符) 》 字符串翻转(转数组,数组翻找再赋值给字符串)(不操作原符串)
8.字符串.replace(old,newStr) 替换字符 不改变原字符串,返回新字符串,每次只能替换一个
### ASCII码
+ charCodeAt(下标)
+ String.fromCharCode(ASCII码)
str.charCodeAt('下标'); 获取的是ASCII码
String.fromCharCode(97) 把ASCII码转成字符


作者: 梦缠绕的时候    时间: 2019-9-5 11:11
有任何问题欢迎在评论区留言
作者: 梦缠绕的时候    时间: 2019-9-5 11:11
或者添加学姐微信
DKA-2018




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2