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