组合字符串的时候, 组合 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. 深度学习 Bottleneck layer / Bottleneck feature

    最近在学习deeplearning的时候接触到了bottle-neck layer,好奇它的作用于是便扒了一些论文(论文链接放在文末吧),系统的了解一下bottle-neck feature究竟有什么 ...

  2. 2.4_Database Interface ODBC数据库驱动程序类型(单层与多层)

    两大类:单层驱动程序和多层驱动程序 1.单层数据库驱动程序 早期的xBASE数据库系统的驱动程序就属于单层驱动程序. 单层驱动程序不仅要处理ODBC函数调用,还要解释执行SQL语句,执行数据库管理系统 ...

  3. WebApi接收接收日期格式参数时,日期类型(2019-10-08T16:00:00.000Z)后台接收时间少8小时问题

    前端使用的是elementui的日期控件,将日期格式的数据提交到webapi后台时,接收到的日期格式少了8小时,这个原因是由于时区引起的,应该在WebApiConfig进行配置转成本地时间,解决少8小 ...

  4. 提高QPS

    常用方案 1.异步化+MQ 即非阻塞,化繁为简,拿到你需要处理的资源后尽快回复.适用于事务处理场景,且无需对上游返回数据场景. 2.无锁设计 本质上是要降低锁冲突,基于数据版本的乐观锁 有效的减少了互 ...

  5. 1+X学习日志——扇形2D效果

    section{ width: 500px; height: 300px; border-bottom: 10px solid black; position: relative; margin: 1 ...

  6. Spring Cloud原理详解

    概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...

  7. MySQL Backup--innobackupex操作日志

    备份脚本: innobackupex \ --defaults-file="/export/servers/mysql/etc/my.cnf" \ --host="loc ...

  8. kubernetes 集群添加node节点

    kubernetes 集群添加node节点 注意,我们并不需要把新增的node ip加入到证书里重新生成!!! 下面我们以添加node03为例 一.添加集群里个节点的hostname并设置好对应主机名 ...

  9. 【HCIA Gauss】学习汇总-数据库基础介绍-1

    存放在数据库中数据的特点 :永久存储 又组织 可共享 数据库系统是由 数据库 数据库管理系统 应用程序 管理员成员 组成的存储 管理 处理和维护数据的系统 三个阶段:人工阶段 ,文件系统阶段,数据库系 ...

  10. Linux系统下文件压缩与打包命令

    Linux系统下文件压缩与打包命令 常用的压缩文件拓展名 * .Z * .zip * .gz * .bz2 * .xz * .tar * .tar.gz * .tar.bz2 * .tar.xz 压缩 ...