资讯专栏INFORMATION COLUMN

数组、伪数组、字符串、对象常用api大聚会

haobowd / 2660人阅读

摘要:数组改变数组的不改变原数组返回新数组没有毛线一数组字符串将数组转成字符串可自定义分隔符没有毛线将数组转成字符串并分隔每个元素没有毛线没有毛线拍照返回字符串没有毛线二数组元素添加向数组尾部添加元素改变了数组添加一个没有毛线添加一个向数组头部添

数组api

改变数组的 push、pop、unshift、shift,sort、reverse、splice
不改变原数组 返回新数组 concat、join,slice

var arr = ["abc","123","没有毛线","say good bye"]

一、数组 => 字符串

(1)  join() 将数组转成字符串 可自定义分隔符
    var s1 = arr.join("=>")
    console.log(s1)   //=>abc=>123=>没有毛线=>say good bye
    
(2) String(arr)  将数组转成字符串并","分隔每个元素
    var s2 = String(arr)
    console.log(s2)   // => abc,123,没有毛线,say good bye
    
(3) toLocaleString() 
    var s3 = arr.toLocaleString()
    console.log(s3)   // => abc,123,没有毛线,say good bye
    console.log(arr.toLocaleString() === String(arr))  //true
    
(4) toString()  拍照 返回字符串
    var s4 = arr.toString()
    console.log(s4)   // => abc,123,没有毛线,say good bye
    
(5) JSON.stringify()
    var arrObject = [{"a":1},{"b":2},{"c":3}]
    var s5 = JSON.stringify(arr)
    console.log(s5)   // =>"[{"a":1},{"b":2},{"c":3}]"

二、数组 元素添加

(1) push() 向数组尾部添加元素 改变了数组
    arr.push("添加一个")
    console.log(arr)  // ["abc", "123", "没有毛线", "say good bye", "添加一个"]   
    
(2) unshift()   //向数组头部添加 改变了数组
    arr.unshift("头排")
    console.log(arr)  //["头排", "abc", "123", "没有毛线", "say good bye", "添加一个"]  
    
(3) concat() 合并数组 不改变数组 返回新数组
    var arr2 = [1,2,3]
    var newArr = arr.concat(arr2)
    console.log(arr,newArr) //["头排", "abc", "123", "没有毛线", "say good bye", "添加一个", 1, 2, 3]

三、数组元素的删除

(1) pop() 删除数组最后一个元素 改变数组
    arr.pop()
    console.log(arr)    //"头排", "abc", "123", "没有毛线", "say good bye"]
    
(2) shift() 删除数组的第一个元素 改变数组的长度 
    arr.shift()
    console.log(arr)  // "abc", "123", "没有毛线", "say good bye"] 
      
(3) slice() 从某一元素开始到结束(不包括结束),创建新数组,原数组不改变
    var newArrs = arr.slice(0,1)
    console.log(arr)  //["abc", "123", "没有毛线", "say good bye"]
    console.log(newArrs)  //["abc"]
    var newArr3 = arr.splice(0,1)
    console.log(arr)
    console.log(newArr3)

四、排序

var arr4 = [1,4,5,3]
var newArr4 = arr4.sort()
console.log(arr4)  //[1, 3, 4, 5]
var arr5 = [1,4,5,3]
var newArr5 = arr5.reverse()
console.log(arr5)  //[3, 5, 4, 1]

五、查找元素

(1) includes() 
    var is = arr.includes("123",0)
    console.log(is)  //true
(2) indexof()  从前往后
    var is1 = arr.indexOf("123")
    console.log(is1)  //0
(3) lastIndexOf() //从后往前 同indexOf

六、伪数组 : 实质上是一个对象,有length属性,也可以按索引存储数据,但是没有数组api,例如: arguments对象、getElementsByTagName等

伪数组转为真实数组
 (1) Array.prototype.slice.call()
    var obj = {0: "a",1:"b", 2:"c",length:3}
    var objToArr = Array.prototype.slice.call(obj)
    console.log(objToArr)   //=>["a","b","c"]
(2) es6的Array.from()
    console.log(Array.from(obj)) //=> ["a","b","c"]
字符串api 对于字符串来说,不管进行任何操作,元字符串都不会改变
var str = "hello 2018"

(1) charAt()  获取指定位置的字符
    console.log(str.charAt(1))   //=>"e"
    
(2) charCodeAt() 获取指定位置的字符编码
    console.log(str.charCodeAt(1))  //=>101
    
(3) indexOf() 查找某一字符 或 字符串
    console.log(str.indexOf("o"))  //=>4
    
(4) lastIndexOf() 同上 从后往前

(5) slice(1,2) 截取从1到2的字符串 不包含2 
    console.log(str.slice(1,2))  //e
    
(6) split() 把字符串分隔成数组
    console.log(str.split(""))   //["h", "e", "l", "l", "o", " ", "2", "0", "1", "8"]
    
(7) substring(1,2) 同slice(1,2)
    console.log(str.substring(1,2)) // => e
    
(8) substr(1,2) 从1截取 2个字符
    console.log(str.substr(1,2))  //=>el
    
(9) toLowerCase() 转小写 返回一个副本
    console.log(str.toLowerCase())  //=>"hello 2018"
    
(10) toUpperCase() 转大写 返回一个副本
    console.log(str.toUpperCase()) //=> "HELLO 2018"

(11) 正则 match() 模式匹配
    console.log(str.match("o")) //=>["o", index: 4, input: "hello 2018"]
    
(12) 正则 replace() 查找并替换
    console.log(str.replace("2018","world"))   // =>"hello world"
对象api
Object.prototype
var o = new Object()

(1) Object.prototype.constructor 判断该对象指向的构造函数
    console.log(Object.prototype.constructor === Object)  // =>true
    
(2) Object.prototype.toString(11) 返回一个目标对象的字符串
    var o1 = {"a":1}
    console.log(o1.toString()) //=>"[object Object]"
    var o2 = new Number(22)
    console.log(o2.toString()) //=>"22"
    console.log(o2.toString(22))  //=>bd   //转成进制数的参数
    
(3) Object.prototype.valueOf()  返回得失用基本类型标识的this的值
    var obj = {}
    console.log(typeof obj.valueOf())  //Objct
    console.log(obj.valueOf() === obj)  //true
    var num1 = new Number(100)
    console.log(typeof num1)    //object
    console.log(typeof num1.valueOf)   //function
    console.log(typeof num1.valueOf()) //number
    
(4)Object.prototype.hasOwnProperty(prop) 判断自身是否存在该属性
    var obj1 = {prop:"haha"}
    console.log(obj1.hasOwnProperty("prop"))  //true
    console.log(obj1.hasOwnProperty("propssss"))  //false

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90466.html

相关文章

  • Array和常用API

    摘要:返回值自写一下函数这就是一个简单的自写的一个函数,代表操作的数组,代表用来操作数组的函数,传入数组和函数。返回值返回排序后的数组。分隔符指定一个字符串来分隔数组的每个元素。生成新数组元素的函数,使用三个参数。 什么是数组 在阮一峰的《JavaScript 标准参考教程(alpha)》中的解释是:数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表...

    coordinate35 评论0 收藏0
  • 数组常用 API

    摘要:,也不会出来接受两个参数,回调函数和回调函数的第一个参数可选回调函数接受四个参数回调函数的返回值处理结果或者的第二个参数正在处理的元素正在处理元素的索引调用的数组。 数组常用 api 介绍 split():拆分字符串变成数组(对字符串操作)join() :合并数组变成字符串(对数组操作)concat():连接两数组splice(begin,deleteCount,insert):拼接s...

    duan199226 评论0 收藏0
  • 面试知识点总结

    摘要:最近面试几家前端职位,想知道目前的前端面试题是偏向哪一块,都主要问到的是语法,闭包,原型链,继承那一块。并且将面试题的知识点汇总一下。参考网站面试题图片过多的时候如何优化图标很多的时候可以用雪碧图图片过大时候可以压缩一下。 最近面试几家前端职位,想知道目前的前端面试题是偏向哪一块,都主要问到的是ES6语法,闭包,原型链,继承那一块。并且将面试题的知识点汇总一下。有助于下次面试。 1.H...

    王晗 评论0 收藏0
  • 面试知识点总结

    摘要:最近面试几家前端职位,想知道目前的前端面试题是偏向哪一块,都主要问到的是语法,闭包,原型链,继承那一块。并且将面试题的知识点汇总一下。参考网站面试题图片过多的时候如何优化图标很多的时候可以用雪碧图图片过大时候可以压缩一下。 最近面试几家前端职位,想知道目前的前端面试题是偏向哪一块,都主要问到的是ES6语法,闭包,原型链,继承那一块。并且将面试题的知识点汇总一下。有助于下次面试。 1.H...

    CrazyCodes 评论0 收藏0
  • 面试知识点总结

    摘要:最近面试几家前端职位,想知道目前的前端面试题是偏向哪一块,都主要问到的是语法,闭包,原型链,继承那一块。并且将面试题的知识点汇总一下。参考网站面试题图片过多的时候如何优化图标很多的时候可以用雪碧图图片过大时候可以压缩一下。 最近面试几家前端职位,想知道目前的前端面试题是偏向哪一块,都主要问到的是ES6语法,闭包,原型链,继承那一块。并且将面试题的知识点汇总一下。有助于下次面试。 1.H...

    waruqi 评论0 收藏0

发表评论

0条评论

haobowd

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<