组合字符串的时候, 组合 sql 的时候, 使用join 会非常有用, join  and
 
记得前端时间去看面试题的时候, 总会出一个小的性能题目, 就是
 
如果有大量的字符串处理的时候, 怎么可以提高性能.
既然是 JavaScript 的题目, 肯定不会如 java 说, 用 StringBuffer
 
这个题目的其中一个答案就是 采用数组, 然后再进行join 空字符串的操作.
例如
 
const arr = [];
for(let i = 0; i < 1000; i++) {
arr.push(“this is your huge content “ + i);
}
const str = arr.join(“”);
 
其实说实话, 懒惰的我并没有对此进行过多的性能测试.
不过看了许多一些开源库里边的写法, 可以说 JavaScript 的 array 在其中是
万能的. 基本上很多的一些结构或者框架的运行都是基于数组的.
比如JavaScript的基础, 事件队列.
array中提供了 push, pop, shift, unshift 的方法, 让 js 中的 array 操作可以
实现栈也可以实现队里. 这一些有空去分析下.
 
不管性能如何, 不过在一些比较复杂的字符串操作中, 学会使用join, 倒是一个很好
的习惯, 起码让我们对数据的处理会比较清晰.
 
万事不然例子, 比如我要做一组字符串的拼接, 但是字符串中可能会有空字符串,
可能会有 undefined 或者 null 值等. 但是这些数据我是需要过滤掉的.
 
所以, 如果只是 += 的操作, 我需要判断很多. 例如
let tmp_a = !!a ? a : ‘’; //或者可以写一个处理方法
let retStr += tmp_a;
如果数据很多, 只是这么拼接会让人感觉很乱, 并且似乎会漏掉一些数据.
如果这些数据本来就是基于数组, 那么就更不方便了.
采用一个数组, 然后对每种情况进行 push 操作, 通过 filter 过滤, 然后join一下, 一目了然
const tmpArr = [];

tmpArr.push(a);….
tmpArr.push(z); const retStr = tmpArr.filter(function(item){return !!item;}).join(“”);
 

数组思维 -- join的一些用法感悟的更多相关文章

  1. js数组的常见操作( push、pop、unshift、shift、splice、concat、 join)的用法

    1.数组添加删除 头部或尾部( push().pop().unshift().shift() ) 例2.数组尾部添加 push()方法可向数组的末尾添加一个或多个元素,并返回新的长度 语法:array ...

  2. js指定分隔符连接数组元素join()

    指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...

  3. SQL中order by;group up;like;关联查询join on的用法

    排序order by的用法: 1.order by 字段名1 asc/desc, 字段名2 asc/desc,... 先按照字段名1的升序/降续给表进行排列 然后 按照字段名2的升序/降续给表进行排列 ...

  4. 1数组的join方法

    function log(e) { console.log(e) } 有时候写console.log太长了,所以会自己写个这样的函数省去写console的步骤. 数组的join方法可以把一个数组按照j ...

  5. python join()阻塞的用法

    join()阻塞的用法,用来检测线程有没有完全执行完毕 #!/usr/bin/env python#-*- coding:utf-8 -*-import threadingimport time de ...

  6. mysql union 和 left join 结合查询用法

    union 和 left join 结合查询用法 SELECT u.nickname,z.group_comming_type,z.id,z.user_id,z.title,z.create_time ...

  7. JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

    指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...

  8. SQL JOIN 和 UNION 用法

    1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P ...

  9. JAVA中数组的基本概念与用法

    JAVA中数组的基本概念与用法 1. 数组的定义与特点 数组的一种引用数据类型 数组中可以同时存放多个数据,但是数据的类型必须统一 数组的长度在开始时就需要确定,在程序运行期间是不可改变的 虽然可以使 ...

随机推荐

  1. 关于梯度下降之前需要进行feature scale的记录

    先上吴恩达老师的课件图 1.对于梯度下降而言,学习率很大程度上影响了模型收敛的速度.对于不同规模的特征,如果采用相同的学习率,那么如果学习率适应于scale大的数据,scale较小的数据由于学习率过大 ...

  2. (七) Docker 部署 MySql8.0 一主一从 高可用集群

    参考并感谢 官方文档 https://hub.docker.com/_/mysql y0ngb1n https://www.jianshu.com/p/0439206e1f28 vito0319 ht ...

  3. ubuntu 迅雷 XwareDesktop

    Xinkai/XwareDesktop Ubuntu上编译安装说明 Home    Ubuntu上编译安装说明    使用说明    升级到0.12    升级到0.9    发行版支持情况    名 ...

  4. OpenJML入门

    目录 OpenJML 获取 下载 使用 Linux Windows Parsing and Type-checking Extended Static Checking Runtime Asserti ...

  5. VBA 字符串-相关函数(6-12)

    Mid()函数 Mid()函数返回给定输入字符串中指定数量的字符. 语法 Mid(String,start[,Length]) 参数 String - 必需的参数.输入从中返回指定数量的字符的字符串. ...

  6. JavaScript 数组去重的那几种方法

    数组去重是最常见的面试题,现在总结一下我所知道的几种 首先第一个就是es5 最常见的循环比较 var array= [1, 1, 2]; function test(nums) { for (var ...

  7. fastjson反序列化漏洞研究(下)

    之前的文章显示字符太多 拒绝显示  只好分为两篇了 这样我们只需要找到可以利用的类,构造poc链就好了,这个和以前的java反序列化漏洞类似,先不说.网上最早的poc是使用com.sun.org.ap ...

  8. react-router-dom下的BrowserRouter和HashRouter

    奇思妙想的

  9. linux后台运行、关闭、查看后台任务常用命令

    一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚 ...

  10. Android笔记(七十二) Style和Theme

    我们尝尝需要使用setText.setColor.setTextSize等属性来设置控件的样式,但是每个控件都需要设置这些属性,工作量无疑是巨大的,并且后期维护起来也不方便. Style Androi ...