利用js对象的特性,去掉数组中的重复项

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>

        <script type="text/javascript" charset="utf-8">

            var arr = [1,1,2,3,3,4,8,8,5,6,6,9];

            //js对象的特性: 对象中的 key 永远不会重复
            /*
            var  obj = {};
            obj.name = ‘zhangsan‘;
            //alert(obj.name);
            obj.name = ‘lisi‘;
            alert(obj.name);    //会覆盖掉张三
            */

            //1,把数组转成 js 对象
            //2,把数组中的值 变成js对象的key
            //3,把这个对象  再还原成数组

            //把数组转对象
             function toObj(arr){
                var obj = {}; //私有的的对象
                var j ;
                for(var i=0 ,j= arr.length; i<j;i++){
                    obj[arr[i]] = true ;
                }
                return obj;
            }
            //把对象转成数组
            function keys(obj){
                var arr = [];//私有对象
                for(var attr in obj){
                    if(obj.hasOwnProperty(attr)){        //YUI底层代码
                        arr.push(attr);
                    }
                }
                return  arr;
            }    

            //综合
             function uniq(newarr){
                return keys(toObj(newarr));
            }

            alert(uniq(arr));    //
        </script>

    </head>
    <body>
    </body>
</html>
时间: 2024-12-28 01:35:04

利用js对象的特性,去掉数组中的重复项的相关文章

Ex 2_14 去掉数组中所有重复的元素..._第二次作业

首先利用归并排序算法对数组进行排序,时间复杂度为O(nlogn),接着再利用时间复杂度为O(n) 的去重复算法去掉数组中的重复元素.总的时间复杂度为O(nlogn). (这题应该用分支算法解决)以下为分支算法 代码不是分支算法 1 package org.xiu68.ch02.ex2; 2 3 public class Ex2_14 { 4 //基于分治法的归并排序算法 5 public static void main(String[] args) { 6 7 int[] a=new int[

arts打卡 从排序数组中删除重复项

Algorithm 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应

[LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. For example,Given input array A = [

[LeetCode] Remove Duplicates from Sorted Array II 有序数组中去除重复项之二

Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For example,Given sorted array A = [1,1,1,2,2,3], Your function should return length = 5, and A is now [1,1,2,2,3]. 这道题是之前那道Remove Duplicates from Sorted Array 有序数组中

Leetcode_删除排序数组中的重复项

Leetcode  删除排序数组中的重复项 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用 额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4]

[leetcode] 26. 删除排序数组中的重复项

26. 删除排序数组中的重复项 一开始各种坐标变换把我绕晕了- -,恶心的水题 class Solution { public int removeDuplicates(int[] nums) { if (nums.length == 0) return 0; int j = 0; for (int i = 0; i < nums.length; i++) if (nums[i] != nums[j]) nums[++j] = nums[i]; return ++j; } } 原文地址:http

26. 删除排序数组中的重复项

26. 删除排序数组中的重复项 package com.test; import java.util.Arrays; public class Lesson026 { public static void main(String[] args) { int[] nums = {0,0,1,1,1,2,2,3,3,4}; int length = removeDuplicates(nums); System.out.println(length); } private static int rem

LeetCode:删除排序数组中的重复项||【80】

LeetCode:删除排序数组中的重复项||[80] 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定 nums = [1,1,1,2,2,3], 函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 . 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums =

LeetCode 第26题 删除排序数组中的重复项

/*26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素.示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的