js 字符串,数组,伪数组转化

一.字符串String 类

## 1.定义字符串的方法
` var st=new String(“hello  world”) `

###简写
var st=“hello world”

1.字符串的加号运算 + 仅仅就是拼接 这种方法 叫字符串拼接

2.字符串prototype上的方法

1.charAt()返回指定位置的字符 var s=st.charAt(2)

2.concat()链接两个或多个字符串,并返回新的 var

3.index Of()返回某个字符串在字符中首次出现的位置,没有就是-1

4.lastIndex Of() 功能和indexOf一样 不过是从后往前

5.match()

6.Search()

7.Replace()

8.slice()截取字符串的一部分

var st = "hello world"
var sd = st.slice(2,7)
console.log(sd)

9.splice()将字符串按某种形式分割成数组

10.substr()也是截取和slice()有点区别

11.substring() 跟slice一样

12. toLowerCase() 将字符串的中字符都变成小写

13. toUpperCase() 将字符串中的字符都变成大写

14. trim() 去掉字符串两端的空白

二.数组.Array

var arr=new Array(“12”,zhangsan)
简写
var arr=【12,“张三”】
数组的基本方法:

1.push()在数组结尾添加一个新元素,返回值是数组长度

var arr = [a,b,c,d]
arr.push(e)
console.log(arr)

2.unshift() 在数组开头添加一个元素返回是数组长度

3.pop()删除数组最后一个元素,返回是删除那个元素

4.shift()删除数组第一个元素,返回是删除那个元素

5.slice()截取数组一部分,并返回新的数组。对原来数组没有影响

var arr = [a,b,c]

arr.slice(1,3)
console.log(arr)

6.splice()在数组中添加或删除元素

7.sort() 给数组中的元素排序

8.reverse() 反转数组中元素的顺序

9.toString() 将数组转换成字符串格式的数组,并返回结果

10.concat()合并多个数组,并返回它的值

var st = [a,b,c]
var sd = [d,e]
var ss = sd.concat(st)
console.log(ss)

11.indexOf()检索数组中元素,并返回它所在位置,没有就是-1

12.jion()将数组所有元素转成一个字符串
//数组去重

var arr=[12,45,12,23,12,23];
var ass=[];
for(var i=0;i<arr.length;i++){
    if(ass.indexOf(arr[i])==-1){
        ass.push(arr[i])
    }
}

三.字符串与数组的转化

      要求将字符串倒序
      ```
      var str = "feng,tao,tao" //
         console.log(str.length)//12
        console.log(typeof str)//string
          ```
      var b = str.split(',')// 用分隔符split(',')方法将字符串转化为数组,并且以里面的参数符号为分隔符
        ```
        console.log(b.length)//3
        console.log(b instanceof Array)//true
         console.log(b)// ["feng", "tao", "tao"]
         var c = b.reverse()
         console.log(c)//["tao", "tao", "feng"]
         ```
         var d = c.join(".")//用join('.')方法将数组转化为字符串,并且以里面的参数符号为分隔符
         console.log(d)  //tao.tao.feng
         console.log(typeof d)//string

四,伪数组

1 它也是对象,伪数组一般具有以下特点:

按索引方式存储数据;
具有length属性;
没有数组的push、shift、pop等方法
伪数组是一个 Object,而真实的数组是一个 Array

2常见的伪数组有:

函数内部的 arguments
用 getElementsByTagName 获得的元素集合(NodeList)
jQuery 对象(比如 $(“div”) )
自定义的某些对象

3将伪数组转化为数组

伪数组可以转换为真正数组条件:1.伪数组的键值需要为数字,否则转换后数组均无初始值2.有length属性
方法一 使用Array.prototype.slice.call() 或 [].slice.call()
Array.prototype.slice.call()可以理解为:改变数组的slice方法的作用域,在特定作用域中去调用slice方法,call()方法的第二个参数表示传递给slice的参数即截取数组的起始位置,默认为0

var obj = {  //伪数组
            0: 'a',
            1: "b",
            length: 2
        }
        console.log(obj.length) //2
        console.log(typeof obj) //object
        console.log(obj instanceof Array) //false
        var arr = Array.prototype.slice.call(obj)
        console.log(arr.length) //2
        console.log(typeof arr) //object
        console.log(arr instanceof Array) //true
        console.log(arr) //["a", "b"] 
        ```
        
对于 arguments,可以使用 Array.prototype.slice.call(arguments); 来达到转换的目的,但对于 NodeList 则不行了,其在 IE8 及以下将会报错,只能说其 JS 引擎有所限制。
因此,如果需要把 NodeList 转换为真正的数组,则需要做下兼容处理。

```function realArray(c) {
    try {
        return Array.prototype.slice.call(c);
    } catch (e) {
        var ret = [], i = 0, len = c.length;
        for (; i < len; i++) {
            ret[i] = (c[i]);
        }
        return ret;
    }
}

方法二 使用ES6中Array.from方法
var arr = Array.from(obj)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值