组合字符串的时候, 组合 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. IdentityServer4:发布环境的数字签名证书

    一,jwt的三个组成部件 先来看一个由IdentityServer颁发的一个标准令牌 eyJhbGciOiJSUzI1NiIsImtpZCI6IjBiNTE3ZjIzYWY0OGM4ZjkyZjExM ...

  2. JavaScript常见的输出方式

    1.通过弹窗的形式来输出 alert(需要输出的内容); alert("hello world"); confirm(需要输出的内容); prompt("请输入内容:&q ...

  3. sqlite移植

    编译 # tar xvf sqlite-3.6.16.tar.gz # cd sqlite-3.6.16 # ./configure # ./configure --host=arm-linux -- ...

  4. 整合91平台接入的ANE

    来源:http://www.swfdiy.com/?p=1328 91平台接入的SDK只有objectC版和java版, 现在如果要在AIR里使用SDK,只能编写ANE整合进来. 91SDK = 几个 ...

  5. java web编程 servlet2

    一般在开发的过程中主要用一个doGet和doPost方法, http就是超文本传输协议,这是java API对servlet的描述 : 一般我们调用的方法细则如下 : service一分为二reque ...

  6. java数据库数据导入excel

    data导出入excel中 controller: package com.longfor.hrssc.api.controller; import com.longfor.hrssc.api.mod ...

  7. Python学习日记(七) 文件操作

    文件操作: 首先要有一个文件作为对象,例‘文件名’.txt 1.文件路径:例 d:\文件名.txt <1>:绝对路径:从根目录往后的路径 <2>:相对路径:当前目录下的路径有什 ...

  8. MongoDB导出与导入远程Linux服务器上的数据

    场景 将远程服务器A上的MongoDB数据库test下的集合people导入到服务器B数据库test的集合people_test下. 简单方案 先将A服务器数据导出,然后再执行导入到B服务器. 下面的 ...

  9. Java精通并发-wait与notify方法案例剖析与详解

    在上一节中对Object的wait.notify.notifyAll方法进行了总结,这次举一个具体案例来进行巩固,题目如下: 编写一个多线程程序,实现这样的一个目标: 1.存在一个对象,该对象有一个i ...

  10. P1392 取数[堆]

    题目描述 在一个n行m列的数阵中,你须在每一行取一个数(共n个数),并将它们相加得到一个和.对于给定的数阵,请你输出和前k小的取数方法. 解析 写这题完全自闭. 根本没联想起远古时期做的 P1631 ...