javascript模擬map輸出與去除重復(fù)項的方法
更新時間:2015年02月09日 16:33:18 作者:另一花生
這篇文章主要介紹了javascript模擬map輸出與去除重復(fù)項的方法,通過自定義函數(shù)結(jié)合遍歷與刪除的方法實現(xiàn)了去除重復(fù)項的功能,非常具有實用價值,需要的朋友可以參考下
本文實例講述了javascript模擬map輸出與去除重復(fù)項的方法。分享給大家供大家參考。具體方法如下:
1.Javascriptmap輸出
function Map(){
// private
var obj = {} ;// 空的對象容器,承裝鍵值對
// put 方法
this.put = function(key , value){
obj[key] = value ;// 把鍵值對綁定到obj對象上
}
// size 方法 獲得map容器的個數(shù)
this.size = function(){
var count = 0 ;
for(var attr in obj){
count++;
}
return count ;
}
// get 方法 根據(jù)key 取得value
this.get = function(key){
if(obj[key] || obj[key] === 0 || obj[key] === false){
return obj[key];
} else {
return null;
}
}
//remove 刪除方法
this.remove = function(key){
if(obj[key] || obj[key] === 0 || obj[key] === false){
delete obj[key];
}
}
// eachMap 變量map容器的方法
this.eachMap = function(fn){
for(var attr in obj){
fn(attr, obj[attr]);
}
}
}
//模擬java里的Map
var m = new Map();
m.put('01' , 'abc');
m.put('02' , false) ;
m.put('03' , true);
m.put('04' , new Date());
//alert(m.size());
//alert(m.get('02'));
//m.remove('03');
//alert(m.get('03'));
m.eachMap(function(key , value){
alert(key +" :"+ value);
});
2.去除map中重復(fù)項
var arr = [2,1,2,10,2,3,5,5,1,10,13];//object
//js對象的特性:在js對象中key是永遠(yuǎn)不會重復(fù)的
/*
var obj = new Object();
obj.name = 'z3';
obj.age = 20 ;
//alert(obj.name);
obj.name = 'w5';
alert(obj.name);
*/
// 1 把數(shù)組轉(zhuǎn)成一個js的對象
// 2 把數(shù)組中的值,變成js對象當(dāng)中的key
// 3 把這個對象 再還原成數(shù)組
// 把數(shù)組轉(zhuǎn)成對象
function toObject(arr){
var obj = {} ; // 私有的對象
var j ;
for(var i=0 , j= arr.length ; i<j; i++){
obj[arr[i]] = true ;
}
return obj ;
}
// 把這個對象轉(zhuǎn)成數(shù)組
function keys(obj){
var arr = [] ; // 私有對象
for(var attr in obj){
if(obj.hasOwnProperty(attr)){//YUI底層代碼
arr.push(attr);
}
}
return arr ;
}
//綜合的方法 去掉數(shù)組中的重復(fù)項
function uniq(newarr){
return keys(toObject(newarr));
}
alert(uniq(arr));
希望本文所述對大家的javascript程序設(shè)計有所幫助。
相關(guān)文章
如何用js獲取當(dāng)年周數(shù)列表以及當(dāng)前日期是第幾周
這篇文章主要介紹了如何獲取當(dāng)前年份的周數(shù)列表,并計算當(dāng)前日期是第幾周,代碼基于ISO8601標(biāo)準(zhǔn),計算每年的第一周從第一個星期四開始,需要的朋友可以參考下2024-11-11
Chrome不支持showModalDialog模態(tài)對話框和無法返回returnValue問題的解決方法
上個禮拜修改測試一個后臺管理項目,在測試與各個瀏覽器兼容性的時候,發(fā)現(xiàn)在chrome瀏覽器下showModalDialog方法顯示的并不是模態(tài)對話框,就像新打開一個頁面一樣,父窗口仍然可以隨意獲取焦點,并可以打開多個窗體,而且返回值returnValue也無法返回,一直是undefined2016-10-10
js內(nèi)置對象處理_打印學(xué)生成績單的簡單實現(xiàn)
下面小編就為大家?guī)硪黄猨s內(nèi)置對象處理_打印學(xué)生成績單的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
JavaScript檢查數(shù)字是否為整數(shù)或浮點數(shù)的方法
這篇文章主要介紹了JavaScript檢查數(shù)字是否為整數(shù)或浮點數(shù)的方法,涉及javascript類型判斷的相關(guān)技巧,需要的朋友可以參考下2015-06-06
全面理解面向?qū)ο蟮?JavaScript(來自ibm)
要掌握好?JavaScript,首先一點是必須摒棄一些其他高級語言如?Java、C#?等類式面向?qū)ο笏季S的干擾,全面地從函數(shù)式語言的角度理解?JavaScript?原型式面向?qū)ο蟮奶攸c2013-11-11
Javascript ES6中對象類型Sets的介紹與使用詳解
這篇文章主要給大家介紹了關(guān)于Javascript ES6中Sets的介紹與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07

