摘要:常常在开发中,会使用到很多数组和字符串的处理方法,这里列举一些我常用到的一些,方便大家参考使用。数组转化成字符串,原来的数组不变。将作为切割字符,结果存在一个字符串中。补充数字保留小数,结果是字符串类型的。
数组方面常常在开发中,会使用到很多js数组和字符串的处理方法,这里列举一些我常用到的一些,方便大家参考使用。
push:向数组尾部增加内容,返回的是新数组的长度。
var arr = [1,2,3]; console.log(arr); var b = arr.push(4); console.log(b); console.log(arr); // [1, 2, 3] // 4 //表示当前数组长度 // [1, 2, 3, 4]
与之相反的是pop, 在结尾删除一个值,并返回删除的值。
var arr = [1,2,3]; console.log(arr); arr.pop(); console.log(arr); // [1,2,3] //[1,2]
unshift :向数组开头增加内容,返回新数组的长度。
var c = arr.unshift(-1,0); console.log(arr); // [-1, 0, 1, 2, 3]
与之相反的是shift,在开头删除一个值,并返回删除的值。
var d = arr.shift(); console.log(d); console.log(arr); // 1 // [2, 3]
toString:数组转化成字符串,原来的数组不变。
console.log(arr); arr = arr.toString(); console.log(arr); // [1,2,3] //"1,2,3" 而不是"123"
concat:数组的拼接,参数可以是数组也可以一个接一个,原来的数组不变。
var arr = [1,2,3]; var b = arr.concat([1,2,3]); console.log(b); //[1,2,3,1,2,3]
join:(分隔符),每一项拿出来用指定的分隔符分开,不带参数默认为",",原来的数组不变。
var arr = [1,2,3]; var b = arr.join(""); console.log(b); //"123"
splice 和 slice
splice(x,y,z) 从x开始清除长度为y的元素,并用z替换。z类似于item1, ..., itemX这样。原来的数组改变。
var arr = [1,2,3]; arr.splice(0,1,""); console.log(arr); // "["",2,3]"
当不写第三个数的时候,相当于删除功能!当第二个为0时,相当于添加功能!
详解
删除时,两个参数,第一个是开始位置,第二个是删除长度。
插入时,三个参数,第一个是插入位置(在之前插入),第二个是0,第三个是插入的内容。
替换时,三个参数,第一个是开始位置,第二个是删除长度,第三个是替换的内容
slice(x,y) :从x到y(不包括),并把新的内容作为新的数组返回。原来的数组不变。
var b = arr.slice(0,1); // [1]
reverse: 将原来的数组倒过来排序,原来的数组改变。
var arr = [1,2,3]; arr.reverse(); console.log(arr); // [3,2,1]
sort:排序,可以实现由小到大,由大到小。基本的只能处理10以内,要额外的处理。原来的数组改变。
var arr = [1,3,2,50,23]; arr.sort(function(a,b) {return a - b ;}); //从小到大 console.log(arr); // [1,2,3,23,50] // 更换a和b的顺序,就是从大到小。 //也可以这样。 [{name:"张三",age:30},{name:"李四",age:24},{name:"王五",age:28}].sort(function(o1,o2){returno1.age-o2.age;}) // [{name: "李四",age: 24 },{name: "王五",age: 28},{name: "张三",age: 30 }]
再类似于forEach、filter、map、reduce等。
字符串charAt: 返回字符串的给定位置的字符串。
var arr = "abcdefg"; console.log(arr.length); console.log(arr.charAt(1)); console.log(arr[1]); // 7 // b // b
concat: 连接2个字符串。原来的不变。
var b = arr.concat("abc"); console.log(b); // "abcdefgcde"
substring、substr、slice 都可省略第二个参数,表示持续到字符串结束。
substring(x,y) 返回从x到y(不包括y) 位置颠倒时,互换。
var s = arr.substring(1,3); console.log(s); // "bc"
substr(x,y) 返回从x开始的长度为y的字符串
var s = arr.substr(1,3); console.log(s); // "bcd"
slice(x,y) 返回从x到y(不包括y) 位置颠倒时,结果为空字符串
var s = arr.slice(1,3); console.log(s); var s = arr.slice(3,1); console.log(s); // bc // ""
trim : 去除两端的空格,不影响之前的字符串
var arr = " abcdefg "; var a = arr.trim(); console.log(a); //abcdefg
半角全角空格、中英文空格、tab键一招根除。
toLowerCase 、toUpperCase :转为大小写,原来的不变。
var b = arr.toUpperCase(); console.log(b); //"ABCDEFG"
indexOf、lastIndexOf,确定一个字符串在另一个字符串中的第一次出现的位置,一个从头部开始,一个从尾部开始。
var arr = "abccba"; var b = arr.indexOf("b"); console.log(b); // 1 var c = arr.lastIndexOf("c"); console.log(c); // 3
它们还可以接受第二个参数,对于indexOf,表示从该位置开始向后匹配;对于lastIndexOf,表示从该位置起向前匹配。
split 将separate作为切割字符,结果存在一个字符串中。
var arr = "a b c c b a"; var b = arr.split(" "); console.log(b); // ["a", "b", "c", "c", "b", "a"]
为空时,相当于字符串转为了数组。
补充:数字:toFixed() 保留小数,结果是字符串类型的!!。
var a = 1.1212; console.log(a.toFixed(2)); // 1.12
parseInt 和 parseFloat
var a = 024; console.log(parseInt(a,10)); // 24
字符串转数字 parseInt
数字转字符 toString or 数字 + ""
参考链接: 阮一峰的JavaScript 标准参考教程(alpha)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/78473.html
摘要:相关系列前面分析了数组,现在看一下队列和哈希表的实现。队列是一个双向链表,实现了一个队列的操作逻辑。它们都将链表节点塞入数据结构。对于常用的解决冲突的方法有线性探测二次探测和开链法等。 相关系列:http://www.codefrom.com/p/nginx 前面分析了ngx_array_t数组,现在看一下ngx_queue队列和ngx_hash哈希表的实现。 ngx_qu...
摘要:默认为如果为的话和一样的效果下面将会更新所有匹配到的数据字段更新操作符用来指定一个键的值。语法当对数组字段进行更新时,且没有明确指定的元素在数组中的位置,我们使用定位操作符标识一个元素,数字都是以开始的。 MongoDB干货篇之数据更新 原文地址 https://chenjiabing666.github... 常用的函数 update(,,,),其中表示筛选的条件,是要更新的数据 ...
摘要:在中有四种调用模式方法调用模式函数调用模式构造器调用模式和调用模式。构造一个的实例目标就是结合前缀来调用的函数,被称为构造函数。 久违的博文,貌似距离我上一篇也算是有些年岁(加班的日子真是度日如年啊T^T)了,所以呢,现在是时候回归正道了,还是欢迎各位IT道友多多交(tu)流(cao)哈! 正文 首先,说到 JavaScript 函数,我们就要先理解下一些很可能被忽视的小概念:函数对象...
摘要:创建一个新数组,包含原数组中所有的非假值元素。例如和都是被认为是假值。 创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, , undefined, 和 NaN 都是被认为是假值。 以下是自己实现的compact() compact:(array)=>{ let result = [] //判断参数是否是数组 如果不是...
摘要:最近打算去研究下的源码,准备把大部分方法都实现一遍。先自己写,然后在对照源码。第一个是将数组拆分成多个长度的区块,并将这些区块组成一个新数组。 最近打算去研究下lodash的源码,准备把大部分方法都实现一遍。先自己写,然后在对照源码。第一个是 chunk 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么...
阅读 3151·2021-11-08 13:21
阅读 1175·2021-08-12 13:28
阅读 1381·2019-08-30 14:23
阅读 1894·2019-08-30 11:09
阅读 773·2019-08-29 13:22
阅读 2661·2019-08-29 13:12
阅读 2528·2019-08-26 17:04
阅读 2217·2019-08-26 13:22