国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript 去除數組的重復元素

2019-11-21 00:31:50
字體:
來源:轉載
供稿:網友
我打開firebug的console,花了30秒想,30秒寫,結果如下:(x為目標數組,y是去除重復元素后的結果)
復制代碼 代碼如下:

var x=[1,1,3,4,5,3];
var y=[];
var tArray=function(i,arr){
var yap=false;
for(var j=0;j<arr.length;j++){
if(arr[j]==i){yap=true;break;};
}
if(!yap) arr.push(i);
};
for(var t=0;t<x.length;t++){
tArray(x[t],y);
}
alert(y.length);
alert(y.toString());

答案不是唯一的,而且沒有標準答案,所以上面的代碼是對的也是錯的。如果數組是一個復雜對象數組呢?如果數組中包含多個空對象{}呢?要知道js里面有很多特殊甚至是bug的現象,alert({}=={})看看怎么回事...

注:如果誰有標準答案歡迎評論里面發下讓大家學習學習。

出題者本身就不會考慮到這些問題。

不要去學習做題,在實際工作中遇到問題時高效解決問題的能力才是真正有價值的。

需要注意的地方補充:

有個問題應該注意下
arr[j]==i 您這里貌似 是指當數組元素 為number類型時的相等性判斷...
但是往往我們可能要對不同類型做 相等性判斷... 這個是實際應用時應該考慮的問題

1!=new Number(1)的情況
null==undefined 的情況

0=="0" 的情況 等等

所以 顯然 簡單的== 和===都是不合適的.
應該獨立實現一個 equals 方法 做相等性判斷... 要根據需求 設置規則

我舉的例子正是針對number類型的數組的,目的是對“面試啥做題”表達一種態度。實際應用中應該根據實際需求去考慮。除非實際工作中要求或者我是個js學術研究者,否則我是不會獨立去實現一個equals方法的。國外的開發員往往遵循一個信條:“Do The Simplest Thing That Could Possibly Work”,意思大概即“不要過度設計,適用至上”,我這幾年的工作經驗也常常印證著這個道理。不知道你怎么看。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舒城县| 东山县| 江孜县| 黎城县| 张家川| 辽源市| 自治县| 连州市| 临漳县| 江阴市| 安仁县| 沙坪坝区| 华池县| 渭源县| 郓城县| 建湖县| 张掖市| 汉川市| 保山市| 邳州市| 诏安县| 长武县| 钦州市| 中西区| 彭阳县| 襄垣县| 商南县| 大厂| 东莞市| 尤溪县| 禄丰县| 东宁县| 五原县| 嘉峪关市| 手游| 吴忠市| 资阳市| 达日县| 儋州市| 红安县| 昌图县|