JavaScript字符串、数组和对象一些方法使用原创

原创
小哥 3年前 (2022-10-26) 阅读数 206 #js教程
文章标签 JavaScript

1.delete方法

//数组
var a = [1,2,3,4,5,6]
delete a[1]

a
[1,empty,2,3,4,5,6]

//对象
var b = {1:1,2:2,3:3}
delete b[1]

b
{2:2,3:3}

2.字符串的length和索引(key)以及for of循环

str = 01234

str.length => 5
str[1]  =>1

for(i of str){
    console.log(i)
}
0
1
2
3
4

3.+Number属性(将字符串更改为数组)

+1  //1

但是
1+1     //11

4.串拼接

var a = a;
var b = b;

var c = ${a}+${b}

c
a+b

5.要串接的对象和经过的对象。Object.key转换为数组以查找对象。length

function toString(items){

    let objString = ${items[0]}

    //因为对象不能使用.length,所以首先转换为数组,然后找出对象的长度
    var arr = Object.keys(items)

    for(let i=1;i${objString},${items[i]}
    }

    console.log(objString)
}

toString({0:0,1:1,2:2,3:3})     //1,2,3,4

6.数组反转(reverse())

该字符串不会reverse()方法,因此在反转之前,需要将该字符串转换为数组。

str = aba

str.split().reverse().join()    //aba

7.split()和join()

对split都是分开的,包括空格,对吧。join这一切都在一起,中间没有空间,因为split有空格,所以有间隔在一起。
’ 对split在这两个独立的地方之间有一个空间。join聚在一起,中间有空格,如果split如果有空格,则添加空格。

无论是‘或’ ’,split和join是相反的过程吗?

看代码:

let a = "step on no pets"

a.split( )
["step", "on", "no", "pets"]
a.split()
["s", "t", "e", "p", " ", "o", "n", " ", "n", "o", " ", "p", "e", "t", "s"]

a.split( ).join( )
"step on no pets"
a.split( ).join()
"steponnopets"

a.split().join()
"step on no pets"
a.split().join( )
"s t e p   o n   n o   p e t s"

8.确定值是否在数组内

indexOf如果未返回,则返回。-1,如果相应的index。

9.字符串、数组、词典、对象都有索引、集合。Set无索引(ES6中的集合Set)

//对象索引
var a = {a:0,b:1,c:2,d:3}
a["a"]
"0"

//字符串索引
var str = 12345678
str["1"]
"2"
str[1]
"2"

10.JavaScript in 对 对象 这根绳子管用吗?

目前,它对对象和数组起作用,但字符串不起作用。

//对象in只能判断key在不在对象内
var a = {a:0,b:1,c:2,d:3}
a in a  //true
0 in    //false

//数组
var arr = [1,2,3,4,5,6,7,8,9]
3 in arr        //true

//字符串
var str = 12345678
2 in str        //报错

11.Map和Set的遍历

Array下标可用于循环遍历,Map和Set不能使用下标。为了统一集合类型,ES6标准引入iterable类型,Array、Map、Set都属于iterable类型。

具有iterable类型集合可以通过新的for … of循环以遍历。

var a = [A, B, C];
var s = new Set([A, B, C]);
var m = new Map([[1, x], [2, y], [3, z]]);
for (var x of a) { // 遍历Array
    alert(x);
}
for (var x of s) { // 遍历Set
    alert(x);
}
for (var x of m) { // 遍历Map
    alert(x[0] + = + x[1]);
}

更好的遍历:forEach

forEach是iterable接收自动回调每个迭代的函数的内置方法。

var a = [A, B, C];
a.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    alert(element);
});

Set与Array类似,但Set没有索引,因此回调函数的前两个参数是元素本身:

var s = new Set([A, B, C]);
s.forEach(function (element, sameElement, set) {
    alert(element);
});

Map回调函数参数依次为value、key和map本身:

var m = new Map([[1, x], [2, y], [3, z]]);
m.forEach(function (value, key, map) {
    alert(value);
});

12.数组和字符串。indexOf()方法

var a = leetcode
a.indexOf(c)
4

var b=[1,2,3,4,5,6,7,8,9]
b.indexOf(2)
1

13.slice()和splice()区别

slice()

slice(start,end):该方法从现有数组中返回选定的元素,并返回一个包含start到end(不包含此元素)的数组元素。

注意:此方法不更改原始数组,但返回一个子数组。如果要删除数组中的元素,则应使用该元素。Array.splice()方法。

var arr = [1,2,3,4,5];
console.log(arr.slice(1));//[2,3,4,5]  选择序列号1一个包含所有元素到末尾的新数组。
console.log(arr.slice(1,3))//[2,3]  不包含end,序列号3的元素

同时slice(start,end)可以在切断弦的过程中起作用

/*串的切割和提取----slice(start,end),substring(),substr()*/
var str = "Hello,world!";
var sliceStr = str.slice(1,5);//ello (不包含end)
var subStr = str.substring(1,5);//ello
var subStr = str.substr(1,5);//ello,
var str = "1000000";
var sliceStr = str.slice(-3);//000  起始序列号-3一直到最后的位置

splice()

splice():此方法向数组添加项或从数组中删除项,并返回已删除的项。(此方法更改原始数组)

var arr = [1,2,3,4,5];
console.log(arr.splice(2,1,"hello"));//[3]  返回的新数组
console.log(arr);//[1, 2, "hello", 4, 5]  更改了原始数组

参考文章:https://blog.csdn.net/xiaoqingpang/article/details/79108005

14.获取该对象属性的索引。

例如,一个对象;

var opt = {
  set1:"1",
  set2:"2",
  set3:"2"
}

想要读到对象key,直接阅读key不能使用本机JS实现时,更传统的方法是使用for…in循环:

var opts = { set1: "1", set2: "2", set3: "3" },
    keys = [];

for (key in opts) {
    keys.push(key);
}

keys[0];    // "set1"
keys[1];    // "set2"
keys[2];    // "set3"

但这里面有坑,因为很多时候你不知道 key 目标对象是它自己的还是原型继承的,所以只要目标对象是它自己的,就应该做出一层判断:

for (key in opts) {
    if (opts.hasOwnProperty(key) {
        keys.push(key);
    }
}

好消息是 ES5 增加了 Object.keys 方法,直接获取对象本身的所有键,返回数组:

var keys = Object.keys(opts);

参考文章:https://segmentfault.com/q/1010000000469908

参考文章:
https://www.cnblogs.com/huchong/p/8108360.html
https://www.cnblogs.com/justbecoder/p/11383570.html
https://blog.csdn.net/wangqing84411433/article/details/79567914
https://cnodejs.org/topic/56c20198c3f170d262995662
https://www.cnblogs.com/williamjie/p/9765815.html
Set更多操作:https://m.imooc.com/mip/article/267289

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门