javascript-JavaScript数组值去重,但是返回的类型和原类型不一样, 怎么转换

问题描述

JavaScript数组值去重,但是返回的类型和原类型不一样, 怎么转换

var arr = [2,1,2,10,2,3,4,1,85,321,3,4,65,10,24];

    function uniq(newarr){
        function toObject(arr) {
            var obj = { };
            for(var i=0 ;i<arr.length ;i++){
                obj[ arr[ i ] ]=true;
            }
            return obj ;
        }
        function keys(obj){
            var arr = [ ] ;
            for(var attr in obj){
                if(obj.hasOwnProperty(attr)){
                arr.push(parseInt(attr));
                }
            }
            return arr;
        }
        return keys(toObject(newarr));
    }

    console.log(uniq(arr));

解决方案

var arr = [2,1,2,10,2,3,4,1,85,321,3,4,65,10,24];
function onRepeat(){
var json={};
var temArr=[];
for(var i=0;i<arr.length;i++){
(function(n){
json[n]=1;
})(i);
}
for(var key in json){
temArr.push(json[name]);
}
return temArr;
}
搞定

解决方案二:

推薦使用filter()函數.其他都一樣.最好別總是用循環

时间: 2024-10-06 07:57:22

javascript-JavaScript数组值去重,但是返回的类型和原类型不一样, 怎么转换的相关文章

总结Javascript中数组各种去重的方法_javascript技巧

前言 在做javascript开发的时候,经常会遇到数组元素重复的问题,而javascript Array又没有直接提供方法解决此问题,还需要自己去实现.这篇文章总结了Javascript中数组各种去重的方法,下面来一起看看. 方法一 利用对象属性不重复的特性 Array.prototype.distinct = function (){ var arr = this, i, obj = {}, result = [], len = arr.length; for(i = 0; i< arr.l

javascript 判断数组值是否与字符串后几位相同

var strary= new array(10); strary[0]="114"; strary[1]="112"; strary[2]="110"; strary[3]="119"; strary[4]="118114"; strary[5]="117"; strary[6]="119"; strary[7]="120"; strary[8]

javascript数组操作(去重,排序,连接)

1.数组的创建  代码如下 复制代码  var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值        要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使

javascript实现数组去重的多种方法_javascript技巧

废话不多说,直接拿干货! 先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先给初学者解释一下什么叫数组去重(老鸟跳过):意思就是讲数组里面重复的元素去掉,比如说var arr = [3,2,4,2,1,2]; 数组去重得到的新数组是 [3,2,4,1],就是这么一个功能. 实现方法比较简单,实现的方式也比较多,很多大牛也写过相关的文章,之所以写这边博客,旨在一是备忘,二是给

javascript实现数组内值索引随机化及创建随机数组的方法_javascript技巧

本文实例讲述了javascript实现数组内值索引随机化及创建随机数组的方法.分享给大家供大家参考.具体如下: 今天在QW交流群里看到有同学讨论使数组随机化的问题,其中给出的算法很不错,让我想起了之前自己实现过的不怎么"漂亮"的方法.想想我们有时候在繁忙的写业务代码时只是为了实现其功能,并未花太大心思去思考是否有更好的实现方法. 就这个数组问题(随即排序一个数组里的值,返回一个新数组)来说,我以前的实现方法是这样的: function randArr(arr) { var ret =

javascript 对象数组根据对象object key的值排序

 本文仅仅是实现了javascript 对象数组根据对象object key的值排序,算是对自己学习javascript这么久的一个小结,希望大家能够喜欢     有个js对象数组 var ary=[{id:1,name:"b"},{id:2,name:"b"}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数 函数定义:   代码如下: function keysrt(key,desc) { return function(a,b){ return

Javascript中怎么得到模式窗体返回的值

问题描述 Javascript中怎么得到模式窗体返回的值 解决方案 解决方案二:2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象.例如:------------------------------parent.htm<script>str=window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");alert(str);

JavaScript中数组添加值和访问值常见问题_javascript技巧

通过本文给大家介绍关于数组方面的一些小问题,或许对大家有点帮助,本文写的不好,还请各位大侠见谅. 1. // var arr = [,,]; // arr["bbb"]="nor "; // arr[-]="nor "; // console.log(arr); >> [, , , bbb: "nor ", -: "nor "] // console.log(arr.bbb) >>

JavaScript去除数组里重复值的方法_javascript技巧

本文实例讲述了JavaScript去除数组里重复值的方法.分享给大家供大家参考.具体如下: var unique = function(origArr) { var newArr = [], origLen = origArr.length, found, x, y; for ( x = 0; x < origLen; x++ ) { found = undefined; for ( y = 0; y < newArr.length; y++ ) { if ( origArr[x] === n