19.4 Array数组API补充
1. Array.reverse():将数组内的数据顺序翻转,返回一个翻转后的新数组。
API说明:
/**
@return {Array.<T>} //返回一个数组。
*/
Array.prototype.reverse = function() {};
2. Array.filter(function(element,index,salarys){}): 遍历数组中的所有元素,将数组内的数据按函数内要求过滤,函数中返回true的留下,返回falser过滤掉,返回一个过滤完的新数组。如:
var newSalarys = salarys.filter(function(element,index,salarys){
console.log(element); // 数组中的每一项元素
console.log(index);//数组中每个元素的索引
console.log(salarys);//当前数组
});
API说明:
/**
@param {function(T=, number=, Array.<T>=)} callback //需设置一个回调函数。
@param {*} [thisArg] //可选参数,也可以不选。
@return {Array.<T>} //返回一个函数。
*/
Array.prototype.filter = function(callback,thisArg) {};
3. Array.foreach(function(element,index,salarys){}): 这个API只做循环遍历数组每一项的功能,并可以通过函数内的代码来输出数组中的每一项及每一项的索引,但是这个API无返回值或者是说返回值为undefined。
API说明:
/**
@param {function(T=, number=, Array.<T>=)} callback //需设置一个回调函数。
@param {*} [thisArg] //可选参数,也可以不选。
@return {void} //返回一个无效值。
*/
Array.prototype.forEach = function(callback,thisArg) {};
4. Array.indexOf(searchElement,fromIndex);返回数组中某个元素的索引位置,如果只有一个参数searchElement,则是默认fromIndex从索引为0的位置开始查找,如果有第二个参数fromIndex,则从参数的索引开始往后查找与searchElement相同的元素,并返回这个元素的索引。如果没有元素与searchElement相同,则返回-1.
API说明:
/**
@param {T} searchElement //需要选择的元素。
@param {number} [fromIndex] //查找时的初始索引位置。
@return {number} //返回查找到的元素的索引位置。
*/
Array.prototype.indexOf = function(searchElement,fromIndex) {};
5. Array.slice(start,end): 截取数组中的元素组成一个新数组并返回,不改变原数组。
1 [start,end) 第一个参数是开始截取的索引位置,第二个是终止截取的索引位置,但是取不到第二个索引对应的值。
2 当只有一个参数时,这个参数为开始截取的索引位置,并从这个索引位置开始截取到最后的元素。
3 当第二个值小于第一个值是,截取的数据为空,并返回空数组。
4 当只有一个参数的时候,并且这个参数为负数的时候,就相当于开始截取的索引为Array.length+这个参数的值,并截取后面所有的元素。
5 当第二个值为负数的时候,这终止截取的索引为Array.length+这个参数的值.但是取不到第二个索引对应的值。
API说明:
/**
@param {Number} [start] //开始截取的索引位置。
@param {Number} [end] //终止截取的索引位置。
@return {Array.<T>}//返回一个数组。
*/
Array.prototype.slice = function(start,end) {};
6. Array.splice(start,deleteCount,items):
1 删除数组内的元素:只有start,deleteCount两个参数时为删除功能,第一个参数为开始截取的索引位置,第二个参数是截取元素的数量,返回一个由被截取的元素组成的新数组,原数组的对应元素将被删除。
2 替换数组中的元素:start,deleteCount,items三个参数都存在时就相当于将原数组中的元素替换成新元素的功能。第一个参数为开始截取的索引位置,第二个参数是截取元素的数量,并返回一个由被截取的元素组成的新数组,对于原数组先将被截取的元素删除,再讲items中的新元素填充到截取的位置,被截取的元素数量与补充进来的元素数量可以不一致。
API说明:
/**
@param {Number} [start]//开始截取的索引位置。
@param {Number} [deleteCount]// 需要截取元素的数量。
@param {...T} [items] //替换的元素。
@return {Array.<T>}//返回一个数组。
*/
Array.prototype.splice = function(start,deleteCount,items) {};
20. 清空数组的方式
20.1 array.splice()的方法:从0截取,截取的数量为整个数组的元素数量,即arr.length.
20.2 改变数组长度的方法:让数组的长度变为0,来清空数组。
20.3 直接重新赋值一个空数组,并且一般编程当中都是使用这个方法。
21.字符串string的属性和方法
我们可以将字符串看成由许多字符组成的数组,这时它会拥有许多数组的属性和方法:
21.1 string.length属性
可以通过string.length的属性来查看字符串的字符长度,并且还可以使用循环语句来遍历字符串中所有的字符。
21.2 String.concat(strings) 连接两个字符串
通过string1.concat(string2)的方法将字符串1和2连接起来。
API说明:
/**
@param {...string} [strings]//参数为字符串。
@return {string}//返回一个新的字符串。
*/
String.prototype.concat = function(strings) {};
21.3 string.slice (start,end)
字符串中的slice用法和数组中的用法一致。
21.4 string.substring(start,end)
与slice的用法基本一致。
区别在于特殊用法:当两个参数的时候,并且第二个参数为负数时,则第二个参数相对于0,而这时会从索引为0 的元素开始截取,第一个参数为终止截取的索引位置,并且截取不到这个值,将截取到的元素组成新的数组返回.
/**
@param {Number} start //开始截取的索引位置。
@param {Number} [end]//终止截取得到索引位置。
@return {string}//返回一个新的字符串。
*/
String.prototype.substring = function(start,end) {};
21.5 string.substr(start,length)
1 两个参数的时候,第一个参数为开始截取的索引位置,第二个参数为截取的元素数量。并将截取到的元素组成的新数组返回。
2 一个参数的时候,第一个参数为开始截取的索引位置,并从这个索引位置开始截取到最后的元素。并将截取到的元素组成的新数组返回。
3 一个参数的时候并且参数为负数时,就相当于以array.length+这个参数的值为开始截取的索引位置,并往后截取后面的所有元素。并将截取到的元素组成的新数组返回。
4 两个参数的时候并且第二个参数为负数时,就相当于截取元素数量为零,所以截取结果为空,返回空数组。
API说明:
/**
@param {Number} start//开始截取的索引位置。
@param {Number} [length]//截取字符的数量。
@return {string}//返回一个新字符串。
*/
String.prototype.substr = function(start,length) {};
21.6 string.split (separator,limit)
用某个字符将字符串中的字符分割变成数组中的一个或多个元素,也就是字符串转换为数组。
separator分隔符应为字符串中出现的字符或者为“”空字符串,不然会将字符串整体转换为一个元素。
API说明:
/**
@param {*} separator//分隔符类型。
@param {Number} [limit]
@return {Array}//返回一个新的数组。
*/
String.prototype.split = function(separator,limit) {};
21.7 string.charAt(获取字符串中指定索引位置的字符)
API说明:
/**
@param {Number} pos//指定的索引位置。
@return {string}//返回该位置的字符。
*/
String.prototype.charAt = function(pos) {};
21.8 string.charCodeAt(获取字符串中指定索引位置的字符的ASCII码值)
API说明:
/**
@return {Number}//返回一个ASCII码值。
*/
String.prototype.charCodeAt = function(index) {};
21.9 字符串转换大小写
var str = "helloWMMMAorld";
console.log(str.toUpperCase());//将字符串中所有字符转换为大写。
console.log(str.toLocaleUpperCase());//将字符串中所有字符转换为大写。
console.log(str.toLowerCase());//将字符串中所有字符转换为小写。
console.log(str.toLocaleLowerCase());//将字符串中所有字符转换为小写。
21.10 去除字符串前后的空格 string.trim()
API说明:
/**
@return {string}//返回一个新字符串。
*/
String.prototype.trim = function() {};
21.11 string.replace() 替换字符串里面字符
这个方法有两个参数,
第一个参数searchValue为需要被替换的元素,第二个参数replaceValue为替换后的元素。但这个方法只能替换第一个与searchValue参数相同的元素。
可以通过正则方式来实现全部替换:
第一个参数通过/a/g(g代表global全局的意思)的表示方式来替换字符串中所有与参数searchValue相同的元素。
API说明:
/**
@param {RegExp|string} searchValue//需要替换的字符。
@param {string|function} replaceValue//替换后的字符。
@return {string}//返回一个新的字符串。
*/
String.prototype.replace = function(searchValue,replaceValue) {};