数组、字符串、Math、Number对象API总结以及深拷贝方法

一、数组

1.Array.isArray(obj)

作用:用于确定传递的值是否是一个Array。

语法:Array.isArray(obj)

参数:obj——需要检测的值

返回值:如果对象是 Array,则返回true,否则为false。

2.valueOf()

作用:返回数组对象本身

语法:通过arr.valueOf( )调用

参数:无参数

返回值:数组对象本身

3.push()

作用:将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

语法:arr.push(element1, ..., elementN)

参数:elementN  ——被添加到数组末尾的元素。

返回值:当调用该方法时,新的 length 属性值将被返回。

4.pop()

作用:将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

语法:arr.pop()

参数:无参数

返回值:从一个数组中删除并返回最后一个元素;在一个空数组上调用 pop(),它返回 undefined。

5.shift()

作用:将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

语法:arr.pop()

参数:无参数

返回值:从一个数组中删除并返回最后一个元素;在一个空数组上调用 pop(),它返回 undefined。

6.unshift()

作用:将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)

语法:arr.unshift(element1, ..., elementN)

参数:elementN——要添加到数组开头的元素或多个元素。

返回值:当一个对象调用该方法时,返回其 length 属性值

7.reverse()

作用:将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

语法:arr.reverse()

参数:无参数

返回值:颠倒数组中元素的位置,改变了数组,并返回该数组的引用。

8.sort()

作用:用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的

语法:arr.sort([compareFunction])

参数:compareFunction 可选

        用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。

返回值:排序后的数组。请注意,数组已原地排序,并且不进行复制。

//从小到大
var arr2 = arr.sort(function(a,b){
      return a-b;
})

//从大到小
var arr3 = arr.sort(function(a,b){
      return b-a;
})

//对对象数组进行排序
var arr4 = arr.sort(function(a,b){
      return a.value-b.value;
})

9.concat()

作用:用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

语法:var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

参数:valueN可选

        将数组和或值连接成新数组。如果省略了valueN参数,则concat会返回一个它所调用的已存在的数组的浅拷贝。

返回值:新的 Array 实例。

var alpha = ['a', 'b', 'c'];
var numeric = [1, 2, 3];
alpha.concat(numeric);
// result in ['a', 'b', 'c', 1, 2, 3]

10.slice()

作用:从begin开始截取元素,到end结束,包括start,不包括end,返回新数组,begin,end是索引,不会改变原始数组

语法:arr.slice([begin[, end]])

参数:begin可选-提取起始处的索引(从 0 开始),从该索引开始提取原数组元素。如果省略 begin,则 slice 从索引 0 开始。

   end 可选-提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。如果 end 被省略,则 slice 会一直提取到原数组末尾。

返回值:一个含有被提取元素的新数组。

11.splice()

作用:从start开始截取元素,截取length个,返回新数组,start是索引,length是个数,会改变原始数组

语法:arr.splice(start,length)

参数:参数均可选,从start开始截取元素,截取length个

返回值:由被截取的元素组成的一个数组。如果只截取了一个元素,则返回只包含一个元素的数组。如果没有截取元素,则返回空数组。

12.indexOf(数组元素值)

作用:返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

语法:arr.indexOf(数组元素值)

参数:数组元素值:要查找的元素

返回值:首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1。

13.lastIndexOf()

作用:返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找。

语法:arr.lastIndexOf(数组元素值)

参数:数组元素值:要查找的元素

返回值:数组中该元素最后一次出现的索引,如未找到返回-1。

14.forEach()

作用:用于调用数组的每个元素,并将元素传递给回调函数不改变原数组

语法:arr.forEach(function(item, index))

参数:item  必需。当前元素  //数组里的每一项

        Index   可选。当前元素索引值  //对应的下标

返回值:可以拿到每个数组中的值,没有返回值

15.every()

作用:测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。

语法:arr.every(function(item, index))

参数:item  必需。当前元素  //数组里的每一项

        Index   可选。当前元素索引值  //对应的下标

返回值:如果回调函数的每一次返回都为true值,返回 true ,否则返回 false

16.some()

作用:测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。

语法:arr.some(function(item, index))

参数:item  必需。当前元素  //数组里的每一项

        Index   可选。当前元素索引值  //对应的下标

返回值:数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。

举例:var flag1 = arr3.every(function (item, index) {  

             return item > 55;

        })   //所有值都满足条件返回true,否则返回false

17.filter()

作用:根据指定条件过滤元素,返回新数组 数组中内容数目改变

语法:arr.filter(function(item, index))

参数:item  必需。当前元素  //数组里的每一项

        Index   可选。当前元素索引值  //对应的下标

返回值:一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。

举例://filter():根据指定条件过滤元素,返回新数组满足条件就加入新数组,不改变原数组

  var new1 = arr.filter(function (value, index) {

    return value >= 33;

  })

  console.log(new1);

18.map()

作用:根据指定条件过滤元素,返回新数组 数组中内容数目不变

语法:arr.map(function(item, index))

参数:item  必需。当前元素  //数组里的每一项

        Index   可选。当前元素索引值  //对应的下标

返回值:回调函数的结果组成了新数组的每一个元素

举例://map():根据数学运算,返回新数组处理数据,选择对外展示的数据

  var new2 = arr.map(function (value, index) {

    return Math.pow(value, 2);

  })

19.join()

作用:将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。

语法:arr.join([separator])

参数:separator 可选

        指定一个字符串来分隔数组的每个元素。如果缺省该值,数组元素用逗号(,)分隔。如果separator是空字符串(""),则所有元素之间都没有任何字符

返回值:一个所有数组元素连接的字符串。如果 arr.length 为0,则返回空字符串。

二、字符串

1.charAt()

作用:获取指定位置处字符

语法:str.charAt(index)

参数:index——一个介于0 和字符串长度减1之间的整数。 (0~length-1),如果没有提供索引,charAt() 将使用0。

返回值:返回指定位置index处字符, 如果指定的 index 值超出了该范围,则返回一个空字符串。

2.charCodeAt()

作用:获取指定位置处字符的ASCII码

语法:str.charCodeAt(index)

参数:index——一个大于等于 0,小于字符串长度的整数。如果不是一个数值,则默认为 0。

返回值:返回指定位置index处字符, 如果指定的 index 值超出了该范围,则返回NaN。

3.concat()

作用:拼接字符串,等效于+,+更常用

语法:str.concat(string2, string3[, ..., stringN])

参数:string2...stringN——和原字符串连接的多个字符串

返回值:将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。 concat 方法并不影响原字符串。

4.slice(start,end)

作用:从start位置开始,截取到end位置,end取不到,提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。

语法:str.slice(start,end)

参数:参数均可选,从start位置开始,截取到end位置,end取不到

返回值:返回一个从原字符串中提取出来的新字符串

5.substring(start,end)

作用:从start位置开始,截取到end位置,end取不到

语法:str.substring(start,end])

参数:从start位置开始,截取到end位置,end取不到

返回值:包含给定字符串的指定部分的新字符串。

6.indexOf(字符串元素值)

作用:返回在字符串中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

语法:arr.indexOf(字符串中元素值)

参数:字符串元素值:要查找的元素

返回值:首个被找到的元素在字符串中的索引位置; 若没有找到则返回 -1。

7.lastIndexOf(字符串元素值)

作用:返回指定元素(也即有效的 JavaScript 值或变量)在字符串中的最后一个的索引,如果不存在则返回 -1。从字符串的后面向前查找。

语法:arr.lastIndexOf(字符串元素值)

参数:字符串元素值:要查找的元素

返回值:字符串中该元素最后一次出现的索引,如未找到返回-1。

8.trim()

作用:从一个字符串的两端删除空白字符。

语法:str.trim()

参数:无参数

返回值:返回一个两头都去掉空白的字符串,并不影响原字符串本身。

9.toUpperCase()

作用:转换大写

语法:str.toUpperCase()

参数:无参数

返回值:调用该方法的字符串值转换为大写形式,并返回。

10.toLowerCase()

作用:转换小写

语法:str.toLowerCase()

参数:无参数

返回值:调用该方法的字符串值转换为小写形式,并返回。

11.search()

作用:用于检索字符串中指定的子字符串,返回子字符串的起始位置,若没有返回-1——与indexOf类似

语法:str.search(regexp)

参数:regexp——一个正则表达式(regular expression)对象。如果传入一个非正则表达式对象 obj,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象。

返回值:如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1

12.replace(old,new)

作用:替换字符串用字符串 new替换old——  替换全局(/要替换的字符串/g)

语法:replace(old,new)

参数:old旧的字符串,new新的字符串

返回值:一个部分或全部匹配由替代模式所取代的新的字符串。

13.split()

作用:分割字符串 返回的是一个数组,数组的元素就是以参数来分割的

语法:str.split(‘分割元素’)

参数:分割元素

返回值:返回源字符串以分隔符出现位置分隔而成的一个 Array 

举例:

var str = "abcahuyaunjha";
var str2 = str.split();   //数组内容与字符串一致,数组内只有一个元素"abcahuyaunjha"
var str2 = str.split("");  //以逗号分割,str.length 个元素
var str2 = str.split("a");  //以a分割,去掉a

14.toString()

作用:返回指定对象的字符串形式

语法:str.toString()

参数:无参数

返回值:一个表示调用对象的字符串。

15.String()

作用:返回指定对象的字符串形式

语法:String(thing)         new String(thing)

参数:thing——任何可以被转换成字符串的值。

返回值:返回指定对象的字符串形式。

三、对象

1.for(var key in obj)

作用:以任意顺序遍历一个对象的除Symbol以外的可枚举属性

语法:for (variable in object) statement

参数:variable——在每次迭代时,variable会被赋值为不同的属性名。

   object——非Symbol类型的可枚举属性被迭代的对象。

四、Math对象

1.Math.PI   圆周率

2.Math.floor(x) :向下取整

3.Math.ceil(x):向上取整

4.Math.round(x):取整,四舍五入

5.Math.abs(x):绝对值

6.Math.max():最大值

7.Math.min():最小值

8.Math.sin():正弦

9.Math.cos():余弦

10.Math.pow(基数,指数):求指数次幂

11.Math.sqrt():求平方根

12.  ...arr遍历数组

五、Number对象

 Number()转化规则

     a. 如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0

     b. 如果字符串中包含有效浮点格式,如“1.1”,将其转换为对应的浮点数字,忽略前导0

     c. 如果字符串中包含有效的十六进制格式,如“0xf”,将其转换为相同大小的十进制数值

     d. 如果字符串为空null,或者是空内容,将其转换为0

     e. 如果字符串中包含除上述格式之外的字符,则将其转换为NaN

1.Number.MIN_VALUE:在 JavaScript 中所能表示的最小的正值。约为5e-324

2.Number.MAX_VALUE:在 JavaScript 中所能表示的最大的正值。约为1.79E+308

3.Infinity:无穷大

4.-Infinity:无穷小

5.isNaN()

作用:用来确定一个值是否为NaN

语法:isNaN(value)

参数:value——要被检测的值。

返回值:如果给定值为 NaN则返回值为true;否则为false

6.parseInt()

// 返回12,如果第一个字符是数字会解析直到到第一个小数点结

        var num1 = parseInt("12.3abc");   //向下取整

// 返回NaN,如果第一个字符不是数字或者符号就返回NaN
        var num2 = parseInt("abc123");  

7.parseFloat()

        把字符串转换成浮点数,parseFloat()和parseInt非常相似,不同之处在与
  parseFloat会解析第一个. 遇到第二个.或者非数字结束

8.Boolean():转换成布尔类型

六、Date对象

Date()是构造函数

var date = new Date()

1.getTime():获取1970年1月1日至今的毫秒数

2.valueOf():原始值 

3.getMilliseconds():获取毫秒值,返回0-999

4.getSeconds():秒,返回0-59

5.getMinutes():分钟,返回0-59

6.getHours():小时,返回0-23

7.getDay():返回星期几 ,周日是0  周六是6

8.getDate():返回当前月的第几天

9.getMonth():返回月份,***从0开始***  真实+1

10.getFullYear():返回4位的年份  如 2016

七、深拷贝方法

    //数组深拷贝方法
    var arr = [1, 2, 3, 4, 5, 6]
    var arr2 = []
    //方式一:forEach
    arr.forEach(function (item) {
        arr2.push(item)
    })

    //方式二:filter
    var arr3 = arr.filter(function (item) {
        return turn;
    })

    //方式三:slice
    var arr4 = arr.slice(0)

    //方式四:concat
    var arr5 = [].concat(arr)

    //对象深拷贝方法:for(var key in obj)
    var obj1 = { name: "zs", age: 18 }
    var obj3 = {}
    for (var key in obj1) {
        obj3[key] = obj1[key]
    }
    console.log(obj3)

你可能感兴趣的:(算法,数据结构,c++)