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
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除