JavaScript 數組進行拼接的函數
時候,我們希望在 JavaScript 中將 2 個已經存在的數組串拼接成 1 個數組。
簡單來說就是將數組進行合并。
這個時候,我們可以使用 JavaScript 的 concat 函數。
考察下面的代碼:
const array1=['a', 'b', 'c'];
const array2=['d', 'e', 'f'];
const array3=array1.concat(array2);
console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]
上面的代碼將 2 個數組 array1 和 array2 合并成了一個新的數組為 array3, 在這個新的數組中的元素就是
array2 在 array1 后面添加得到的。
如果你需要合并的數組不只有 2 個,你還有多個的話,你可以同樣使用上面的方法,但是在參數中傳遞進多個數組就行。
concat()
concat(value0)
concat(value0, value1)
concat(value0, value1, ... , valueN)
如上面的代碼,你并不需要將 concat 多次運行來進行合并,concat 這個方法允許傳遞多個需要合并數組為參數。
鄭同學在開發我們系統的時候發現首頁靜態資源多次請求服務器加載緩慢。帶著這個問題他去訪問了淘寶,發現了淘寶一條請求里有多個Js。最后百度一下發現了Concat。Concat是淘寶開發的一個Nginx模塊,可以將多個Js/Css合并成一個請求(當然在合理的情況下),這樣可以減少對服務器的請求個數,達到靜態資源相對較快的加載。下面我們看一下具體的操作。
一、Nginx+Concat安裝
下載Nginx 和Concat
wget http://nginx.org/download/nginx-1.6.2.tar.gz
git clone git://github.com/alibaba/nginx-http-concat.git
下載Concat可能需要翻墻
解壓安裝
將下載好的Concat 放到某目錄,本次試驗放入/usr/local/src/
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure
--prefix=/usr/local/webserver/nginx
--with-http_stub_status_module
--with-http_ssl_module
--add-module=/usr/local/src/nginx-http-concat
以上加粗部分為Concat 目錄,根據實際情況修改
make && make install
測試
在 /usr/local/webserver/nginx/html 新建css 目錄
mkdir -p /usr/local/webserver/nginx/html/css
新建 a.css 和 b.css 內容分別為
a{
color: red;
}
b{
color: blue;
}
c)修改nginx配置文件nginx.conf,新增如下內容
location /css/ {
concat on;
concat_max_files 20;
}
d)啟動nginx
/usr/local/webserver/nginx/sbin/nginx
e)觀察瀏覽器輸出
瀏覽器輸入 http://IP /css/??a.css,b.css
觀察瀏覽器輸出,出現下圖說明配置成功
由上圖看出,兩個css已經合并成功一個css
二、配置實際項目
此步驟需要根據實際情況修改,本次試驗針對 javashop 多店系統
配置 Js/Css 合并
nginx.conf配置
location /themes/b2b2cv2/css/ { root /home/www/b2b2c_1/; concat on; concat_max_files 20; } location /themes/b2b2cv2/js/ { root /home/www/b2b2c_1/; concat on; concat_max_files 20; } |
加粗部分根據實際情況修改
根據對應規則修改項目(修改完成后需要重新啟動nginx)
例如:
可根據實際情況修改。
種方式是es6的語法.使用鍵盤1左邊的那個字符 `` 拼接,
再加上js自帶的模板引擎拼接字符串非常快速.這東西也沒什么高深的,看幾個例子就懂了.
console.log(`<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>`);
var str1='hello';
console.log(`${str1} world`);
var a=10;
var b=20;
console.log(`a+1=${a+1};b*2=${b*2}`);
運行結果:
----瀏覽器中
在nodejs中目前的版本對 ``是完全支持的,瀏覽器支持就各不相同了,手機端安卓支持,但蘋果手機貌似不支持,至少蘋果微信瀏覽器對這個是不支持的.
大概就以下幾點功能:
換行不用加號拼接
可以用${}傳入變量
可以進行數字的計算
不過呢有利有弊,據說性能上沒有正常的拼接高.
意外金喜的博客:http://blog.csdn.net/zzwwjjdj1
鄭重申明,發表的文章都是我自己博客原創的,這是技術分享,再被封就不在這里玩了. ╭(╯^╰)╮