羅良夫+張麗
摘要:隨著互聯(lián)網(wǎng)技術的發(fā)展,目前應用系統(tǒng)大部分采用B/S結(jié)構,其中前端頁面的互動及數(shù)據(jù)處理一般采用JavaScritp技術,在數(shù)據(jù)處理的過程中會產(chǎn)生大量重復的數(shù)據(jù),為了解決Javascript數(shù)組中重復數(shù)據(jù)的問題,該文提出并實現(xiàn)了四種解決方法。
關鍵詞:Javascript;數(shù)組;去重
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)34-0006-02
Abstract: JavaScript arrays to go along with the development of Internet technology, at present most of the application system adopts B/S structure, including the front page of the interaction and JavaScritp commonly used data processing technology, in the process of data processing can produce a large number of duplicate data, in order to solve the problem of duplicate data in JavaScript array, this paper analyzes and implements the four kinds of solutions.
Key words: Javascript; arrays; remove duplicate items
1 JavaScript的簡介
javascript是Oracle公司注冊的商標, JavaScript主要包括ECMAScript、DOM、BOM三部分。ECMAScript 不與特定瀏覽器進行綁定,ECMAScript 為不同宿主環(huán)境提供腳本編程能力,它定義了腳本語言的屬性、方法及對象[1],每種瀏覽器都有其自己的 ECMAScript 實現(xiàn),JavaScript屬于其中的一種;DOM(Document Object Model)即文檔對象模型,它屬于HTML 和 XML 的應用程序接口,DOM 將把整個HTML頁面劃分成具有多個節(jié)點層的文檔[2],使開發(fā)者能夠控制文檔的內(nèi)容及結(jié)構;BOM(Browser Object Model)即瀏覽器對象模型,開發(fā)者可以對瀏覽器窗口進行訪問和操作,比如移動窗口位置、修改狀態(tài)欄文本等。目前JavaScript己發(fā)展出了JQuery、AngularJS、Vue.js等多種庫及框架[3]。
JavaScript 屬于輕量級的腳本語言[5],所謂腳本語言,是指它不具備開發(fā)操作系統(tǒng)的能力,只是用來編寫控制其他應用程序的編程語言。JavaScript 是解釋型的腳本語言,具有動態(tài)數(shù)據(jù)類型、基于原型等特點。JavaScript采用事件驅(qū)動的工作機制,具有較高的安全性,適合在 PC、手機、平板電腦上進行web開發(fā)。JavaScript 屬于嵌入式語言,JavaScript本身提供的語法及并不多, 比如它不提供任何輸入/輸出相關的 API,需要靠瀏覽器等宿主環(huán)境提供, JavaScript去調(diào)用宿主環(huán)境提供的各種底層應用程序接口。JavaScript代碼可嵌入到 HTML 頁面代碼中,并可由幾乎目前所有的主流瀏覽器解釋執(zhí)行。
2 JavaScript數(shù)組的常用功能
JavaScript數(shù)組是進行web開發(fā)常用的功能,JavaScript中數(shù)組是Array對象,它的作用是使用一個名稱存儲多個值。簡單來說JavaScript數(shù)組是多個值的有序集合,JavaScript屬于弱類型的語言,所以同一個數(shù)組中可以存放多種數(shù)據(jù)類型的元素。Array對象主要包括以下幾種常用功能:
2.1 創(chuàng)建數(shù)組
JavaScript可通過Array對象創(chuàng)建,具體分為三種方式創(chuàng)建:
2.1.1 常規(guī)方式
通過Array構造方法實例化一個對象,然后給每個成員賦值,具體語法如下:
Var nameAry=new Array();
nameAry=”Chen”; nameAry=”li”;……
2.1.2 簡潔方式
通過Array構造方法實例化對象時,通過參數(shù)來指定數(shù)組長度并賦值,具體語法如下:
Var nameAry=new Array(”Chen”,”li”,……);
2.1.3 字面方式
直接通過中括號[]創(chuàng)建Array類型的變量,指定長度的同時進行初始化,具體語法如下:
Var nameAry=[”Chen”,”li”,……]數(shù)組元素的添加
2.2 數(shù)組元素的添加
2.2.1 往數(shù)組末尾添加元素
JavaScript可通過push方法往數(shù)組末尾添加一個或多個元素,具體語法如下:
nameAry.push(“新元素值”)
2.2.2 往數(shù)組開頭添加元素
JavaScript可通過unshift方法往數(shù)組開頭添加一個或多個元素,具體語法如下:
nameAry.unshift(“新元素值”);
2.3 數(shù)組元素的刪除
2.3.1 往數(shù)組末尾刪除元素
JavaScript可通過push方法刪除數(shù)組末尾的元素,具體語法如下:
nameAry.pop()
2.3.2 往數(shù)組開頭添加元素
JavaScript可通過shift方法刪除數(shù)組的第一個元素,具體語法如下:
nameAry.shift();
3 JavaScript數(shù)組去重功能的算法及代碼
目前大部分B/S系統(tǒng)中前端的數(shù)據(jù)處理采用JavaScritp完成,用戶數(shù)據(jù)的收集主要通過表單來完成,用戶數(shù)據(jù)的輸入大部分采用數(shù)組來保存,用戶在輸入數(shù)據(jù)的過程中經(jīng)常會出現(xiàn)大量重復的數(shù)據(jù),以下介紹了4種數(shù)組去重的算法及實現(xiàn)代碼:
3.1 第一種方法
算法:
1) 創(chuàng)建一個新的結(jié)果數(shù)組;
2) 遍歷原數(shù)組,每次從原數(shù)組中取出一個元素,用這個元素循環(huán)與結(jié)果數(shù)組對比;
3) 如果結(jié)果數(shù)組中沒有該元素,則添加到結(jié)果數(shù)組末尾。
4 結(jié)束語
JavaScript是目前Web前端開發(fā)的主流腳本語言,主要用于與前端頁面的交互,以及簡單的數(shù)據(jù)處理。JavaScript在進行數(shù)據(jù)處理時,經(jīng)常需要進行數(shù)組元素的去重操作,本文分析并提出了4種JavaScript數(shù)組去重的算法,能夠高效的解決JavaScript數(shù)組元素重復的問題。
參考文獻:
[1] 楊俊, 李艷梅. JavaScript面向?qū)ο缶幊烫轿鯷J]. 辦公自動化, 2010(8):22-24.
[2] 冀瀟, 李楊. JavaScript與Java在Web開發(fā)中的應用與區(qū)別[J]. 通信技術, 2013(6):145-147.
[3] 吳瑞紅, 張環(huán)沖. 淺談JavaScript庫——jQuery,ExtJs的對比研究[J]. 科技信息, 2010(9):474-475.
[4] 王映, 于滿泉. JavaScript引擎在動態(tài)網(wǎng)頁采集技術中的應用[J]. 計算機應用,2004(2):33-36.
[5] 平淑文, 潘玨羽. 基于HTML5和JavaScript輕量型動畫框架開發(fā)[J]. 計算機技術及發(fā)展, 2013(12):5-10.endprint