摘要:否則存入結(jié)果數(shù)組給本地對(duì)象增加一個(gè)原型方法,它用于刪除數(shù)組條目中重復(fù)的條目可能有多個(gè),返回值是一個(gè)包含被刪除的重復(fù)條目的新數(shù)組下面求中最大值正確的是為對(duì)象添加一個(gè)去除重復(fù)項(xiàng)的方法,得到去重后的數(shù)組
深度克隆
function clone(Obj) { var buf; if (Obj instanceof Array) { var buf = [];//創(chuàng)建一個(gè)空數(shù)組 var i = Obj.length; while (i--) { buf[i] = clone(Obj[i]); } return buf; } else if (Obj instanceof Object) { buf = {};//創(chuàng)建一個(gè)空對(duì)象 for (var k in Obj) { buf[k] = clone(Obj[k]); } return buf; } else { return Obj; } }
數(shù)組去重-方法一
Array.prototype.unique1 = function () { var tempArr = [];// 一個(gè)新的臨時(shí)數(shù)組 for (var i = 0; i < this.length; i++) {//遍歷當(dāng)前數(shù)組 //如果當(dāng)前數(shù)組的第i已經(jīng)保存進(jìn)了臨時(shí)數(shù)組,那么跳過, //否則把當(dāng)前項(xiàng)push到臨時(shí)數(shù)組里面 if (n.indexOf(this[i]) == -1) { n.push(this[i]); } return tempArr; } };
數(shù)組去重-方法二
Array.prototype.unique2 = function () { var result = {}, tempArr = [];//result為hash表,tempArr為臨時(shí)數(shù)組 for (var i = 0; i < this.length; i++) {//遍歷當(dāng)前數(shù)組 if (!hash[this[i]]) {//如果hash表中沒有當(dāng)前項(xiàng) hash[this[i]] = true;//存入hash表 tempArr.push(this[i]);//把當(dāng)前數(shù)組的當(dāng)前項(xiàng)push到臨時(shí)數(shù)組里面 } } return tempArr; };
數(shù)組去重-方法三
Array.prototype.unique3 = function () { var result = [this[0]];//結(jié)果數(shù)組 for (var i = 1; i < this.length; i++) {//從第二項(xiàng)開始遍歷 //如果當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組中第一次出現(xiàn)的位置不是i, //那么表示第i項(xiàng)是重復(fù)的,忽略掉。否則存入結(jié)果數(shù)組 if (this.indexOf(this[i]) == i) { result.push(this[i]); } } return result; };
1、給Array本地對(duì)象增加一個(gè)原型方法,它用于刪除數(shù)組條目中重復(fù)的條目(可能有多個(gè)),返回值是一個(gè)包含【被刪除的重復(fù)條目的新數(shù)組】
Array.prototype.unique = function () { var result = []; for (var i = 0; i < this.length; i++) { for (var j = i + 1; j < this.length; j++) { if (this[i] === this[j]) { result.push(this.splice(j, 1)[0]); } else { j++; } } } return result; }; console.log(["a", "b", "c", "d", "b", "a", "e", "asd", "as", 12, 56, 1, 12, "as"].unique());
var a = [1,4,5,2,9]; 下面求a中最大值正確的是
var a = [1, 4, 5, 2, 9]; console.log(Math.max.apply(null, a));
為 Array 對(duì)象添加一個(gè)去除重復(fù)項(xiàng)的方法,得到【去重后的數(shù)組】
Array.prototype.uniq = function () { var arr = []; var flag = true; for (var i = 0; i < this.length; i++) { if (arr.indexOf(this[i]) == -1) { if (this[i] != this[i]) { if (flag) { arr.push(this[i]); flag = false; } } else { arr.push(this[i]) } } } return arr; }; console.log([false, true, undefined, null, NaN, 0, 1, {}, {}, "a", "a", NaN].uniq());
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/88226.html
摘要:同行這么做使用實(shí)現(xiàn)圓形進(jìn)度條前端掘金在開發(fā)微信小程序的時(shí)候,遇到圓形進(jìn)度條的需求。實(shí)現(xiàn)也談數(shù)組去重前端掘金的數(shù)組去重是一個(gè)老生常談的話題了。百度前端技術(shù)學(xué)院自定義前端掘金一標(biāo)簽概念元素表示用戶界面中項(xiàng)目的標(biāo)題。 閑話圖片上傳 - 掘金作者:孫輝,美團(tuán)金融前端團(tuán)隊(duì)成員。15年畢業(yè)加入美團(tuán),相信技術(shù),更相信技術(shù)只是大千世界里知識(shí)的一種,個(gè)人博客: https://sunyuhui.com ...
摘要:同行這么做使用實(shí)現(xiàn)圓形進(jìn)度條前端掘金在開發(fā)微信小程序的時(shí)候,遇到圓形進(jìn)度條的需求。實(shí)現(xiàn)也談數(shù)組去重前端掘金的數(shù)組去重是一個(gè)老生常談的話題了。百度前端技術(shù)學(xué)院自定義前端掘金一標(biāo)簽概念元素表示用戶界面中項(xiàng)目的標(biāo)題。 閑話圖片上傳 - 掘金作者:孫輝,美團(tuán)金融前端團(tuán)隊(duì)成員。15年畢業(yè)加入美團(tuán),相信技術(shù),更相信技術(shù)只是大千世界里知識(shí)的一種,個(gè)人博客: https://sunyuhui.com ...
摘要:將一級(jí)的數(shù)據(jù)結(jié)構(gòu)處理成樹狀數(shù)據(jù)結(jié)構(gòu)處理成樹狀結(jié)構(gòu),一般就是需要節(jié)點(diǎn)和父節(jié)點(diǎn)標(biāo)識(shí),或者需要考慮以哪個(gè)節(jié)點(diǎn)為根節(jié)點(diǎn)生成樹結(jié)構(gòu)數(shù)據(jù)使用示例代碼將一級(jí)的數(shù)據(jù)結(jié)構(gòu)處理成樹狀數(shù)據(jù)結(jié)構(gòu)字段名稱比如父字段名稱比如根節(jié)點(diǎn)的父字段的值需要處理的數(shù)據(jù)是否將一級(jí)的數(shù)據(jù)結(jié)構(gòu)處理成樹狀數(shù)據(jù)結(jié)構(gòu) 處理成樹狀結(jié)構(gòu),一般就是需要節(jié)點(diǎn)和父節(jié)點(diǎn)標(biāo)識(shí),或者需要考慮以哪個(gè)節(jié)點(diǎn)為根節(jié)點(diǎn)生成樹結(jié)構(gòu)數(shù)據(jù) // 使用示例代碼: list...
摘要:將一級(jí)的數(shù)據(jù)結(jié)構(gòu)處理成樹狀數(shù)據(jù)結(jié)構(gòu)處理成樹狀結(jié)構(gòu),一般就是需要節(jié)點(diǎn)和父節(jié)點(diǎn)標(biāo)識(shí),或者需要考慮以哪個(gè)節(jié)點(diǎn)為根節(jié)點(diǎn)生成樹結(jié)構(gòu)數(shù)據(jù)使用示例代碼將一級(jí)的數(shù)據(jù)結(jié)構(gòu)處理成樹狀數(shù)據(jù)結(jié)構(gòu)字段名稱比如父字段名稱比如根節(jié)點(diǎn)的父字段的值需要處理的數(shù)據(jù)是否深復(fù)制數(shù) 將一級(jí)的數(shù)據(jù)結(jié)構(gòu)處理成樹狀數(shù)據(jù)結(jié)構(gòu) 處理成樹狀結(jié)構(gòu),一般就是需要節(jié)點(diǎn)和父節(jié)點(diǎn)標(biāo)識(shí),或者需要考慮以哪個(gè)節(jié)點(diǎn)為根節(jié)點(diǎn)生成樹結(jié)構(gòu)數(shù)據(jù) // 使用示例代碼...
摘要:專題系列第六篇,講解深淺拷貝的技巧和以及實(shí)現(xiàn)深淺拷貝的思路前言拷貝也是面試經(jīng)典吶數(shù)組的淺拷貝如果是數(shù)組,我們可以利用數(shù)組的一些方法比如返回一個(gè)新數(shù)組的特性來實(shí)現(xiàn)拷貝。所以我們可以看出使用和是一種淺拷貝。 JavaScript 專題系列第六篇,講解深淺拷貝的技巧和以及實(shí)現(xiàn)深淺拷貝的思路 前言 拷貝也是面試經(jīng)典吶! 數(shù)組的淺拷貝 如果是數(shù)組,我們可以利用數(shù)組的一些方法比如:slice、co...
閱讀 2621·2021-11-16 11:40
閱讀 3417·2021-11-08 13:26
閱讀 886·2021-10-28 09:32
閱讀 3542·2021-09-13 10:26
閱讀 815·2019-08-30 15:55
閱讀 788·2019-08-30 15:44
閱讀 1917·2019-08-30 15:44
閱讀 1762·2019-08-30 13:48