数组、字符串、对象常用函数

110 阅读1分钟

1.数组

改变原始数组(

splice:Array.splice(begin, deleteCount, addItem1, addItem2...) 返回删除的数组

push:arr.push('xxx') 返回数组长度

sort:arr.sort([compareFunction]) 返回用原地算法对数组的元素进行排序的数组

不改变原数组(

slice:arr.slice([start[, end]]) 返回新数组

join:arr.join('xxx') 返回数组所有元素连接成的字符串

concat:arr.concat([item1,item2...]) 返回合并后的新数组

indexOf:arr.indexOf(element, fromIndex=0) 返回查找元素在数组中第一次出现时的索引,不能发现NaN

includes:arr.includes(element, fromIndex=0) 返回true或false,可发现NaN

map:array.map(callback,[ thisObject]) 返回该数组中的每个元素都调用一个提供的函数后返回的结果

reduce:array.reduce(callback,[initialValue]) callback(accumulator, currentValue, [currentIndex, array]) 方法对数组中的每个元素执行一个提供的 reducer 函数(升序执行),将其结果汇总为单个返回值

filter:array.filter(callback,[ thisObject]) 返回通过测试为true的所有元素组成的数组

2.字符串

改变原始字符串(

不改变原字符串(

split:string.split(separator,limit) 返回分割后的数组

substr:str.substr(start[, length]) 返回截取的字符串

3.对象

Object.prototype.hasOwnProperty(prop):仅在目标属性为对象自身属性时返回true

Object.create(obj, descr) (ES5):用于创建一个新对象,并为其设置原型,用(上述)属性描述符来定义对象的原型属性

4.常用特殊说明

类数组转换的几种方式(

ES6 扩展运算符进行转换:var arr1 = [...arrayLike]; // ['a','b','c']

ES6 中的 Array.from:let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

ES5中 Array.prototype.slice.call():

  • 第一个参数是context(就是上下文的意思),用来替换对象函数中的this
  • 第二个参数是传递给对象函数的参数