组合字符串的时候, 组合 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. Java泛型 - 返回父类的子类

    一.栗子 public class GenericityInher { //error: Type mismatch: cannot convert from ArrayList<Child&g ...

  2. idea 终端terminal修改git bash

    1 Ctrl+Alt+s 打开设置修改shell path 2 Alt +12 或View + Tool Windows + Terminal 修改成功

  3. Spring AOP创建Throwdvice实例

    1.异常发生的时候,通知某个服务对象做处理 2.实现throwsAdvice接口 接口实现: public interface IHello { public void sayHello(String ...

  4. 匿名对象序列化为XML

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...

  5. Ubuntu 18.04 上使用xrdp远程桌面连接(Windows远程桌面连接)

    Ubuntu18.04设置#安装xrdpsudo apt-get install xrdp #安装vnc4serversudo apt-get install vnc4server tightvncs ...

  6. Python——Int&Bool

    整数类型: int类型,多用于数字运算 print(666) print(6+1) 整数类型转换: v1 = 666 v2 = str(v1) #会得出字符串的666 v1 = True v2 = i ...

  7. World发布博客测试

    姓名 地址 博客 www.bk.com  插入一个单元格并放入代码 using System; using System.Collections.Generic; using System.Linq; ...

  8. HTML&CSS基础-属性选择器

    HTML&CSS基础-属性选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源代码 <!DOCTYPE html> <html> & ...

  9. XPath知识点【一】

    什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 XPath 路径表 ...

  10. MySQL学习总结 (InnoDB)

    主要内容: 存储结构 索引 锁 事务 存储结构 表 索引组织表:表是根据主键顺序组织存放的.如果表中没有非空惟一索引,引擎会自动创建一个6字节大小的指针. 主键的索引是定义索引的顺序,而不是建表时列的 ...