用对象[属性]表示属性值 新数组记录字符在结果数组中是否出现

// 最简单数组去重法

function unique1(array){

  var n = []; //一个新的临时数组

  //遍历当前数组

  for(var i = 0; i < array.length; i++){

    //如果当前数组的第i已经保存进了临时数组,那么跳过,

    //否则把当前项push到临时数组里面

    if (n.indexOf(array[i]) == -1) n.push(array[i]);

  }

  return n;

}

//对象算法

Array.prototype.unique3 = function(){
   //1.创建一个新的数组存放结果
   var res = [];
   //2.创建一个空对象
   var json = {};
   //3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。
   for(var i = 0; i < this.length; i++){
    if(!json[this[i]]){
      res.push(this[i]);
      json[this[i]] = 1;
    }
   }
   return res;
  }
  var arr = [112,112,34,‘你好‘,112,112,34,‘你好‘,‘str‘,‘str1‘];
  alert(arr.unique3());

时间: 2024-10-21 05:06:45

用对象[属性]表示属性值 新数组记录字符在结果数组中是否出现的相关文章

递归找出数组中对象属性为某个值的选项,不改变原数组

arr数组每一项为一个对象,并且每一项可能有children属性,其值为同它本身一样的数组,要求找到数组中checked==true的值(前提:如果其子元素checked==true,那么父级的checked一定为true) 这里的逻辑跟该自定义组件相似:http://www.cnblogs.com/XHappyness/p/7451611.html findValue(arr) { let newArr= [].concat(arr);//把值赋值给一个新数组,而不是赋值引用:如果直接 let

关于C中字符数组,字符指针以及C++中string类型的两两转换及排序

// practise.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <string.h> #include <string> #include <algorithm> #include <iostream> using namespace std; int main() { /* 字符串转字符数组,使用strncpy_s(),比strncpy()安全*/ string str

重写函数对象prototype属性值的不同的情况下实例对象的内部属性Prototype值有所不同

http://www.cnblogs.com/cmptlgg/ 我的博客园 重写函数对象的prototype属性值:会切断实例的[[Prototype]]内部属性和最初函数对象的prototype(原型对象)的联系 这个例子引用js高级第三版: /* 这是高三对此实现的解释. 尽管可以随时为原型添加属性和方法,并且修改能够立即在所有对象实例中反映出来,但如果是重 写整个原型对象,那么情况就不一样了.我们知道,调用构造函数时会为实例添加一个指向最初原型的 [[Prototype]]指针,而把原型修

C#用反射实现两个类的对象之间相同属性的值的复制

在进行实体转换操作的时候如果需要在对两个实体之间两个属性字段差不多相同的类要进行一个互相的转换,我们要把a对象的所有字段的值都复制给b对象,我们只能用b.属性=a.属性来写,如果属性字段太多的话,就要写很多行复制语句,麻烦还容易漏掉一些,这个时候可以利用c#的反射来实现复制.我们可以写这样一个利用泛型的映射函数. 1.适用于创建实体的时候从一个实体作为数据源赋值 /// <summary> /// 反射实现两个类的对象之间相同属性的值的复制 /// 适用于初始化新实体 /// </sum

Object.assign 合并多个对象的属性,如果是对象有同名属性,则后面对象的属性值覆盖前面的。

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. <script> const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const returnedTarget = Object.assign(target, source); console.log(target); // expected output: Object { a: 1, b: 4, c: 5

javascript获取对象直接量中的属性和属性值

javascript获取对象直接量中的属性和属性值:所谓的对象直接量简单来说就是,由大括号包裹的键值对列表,例如: var antzone={ webName:"蚂蚁部落", address:"青岛市南区", age:2 } 下面介绍一下如何获取对象直接量中的属性和属性值,代码如下: var antzone={ webName:"蚂蚁部落", address:"青岛市南区", age:2 } for(var prop in a

SCRIPT5007:无法获取属性“show”的值,对象为null或未定义

1.错误描述 SCRIPT5007:无法获取属性"show"的值,对象为null或未定义            dojo.js,行15.字符11808 2.错误原因    require(["dijit/registry"],function(registry){        registry.byId("id").show();    }); 3.解决办法 SCRIPT5007:无法获取属性"show"的值,对象为null

Python帮助函数调试函数 用于获取对象的属性及属性值

刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详细有什么属性,包括什么值,所以写了一个函数.用于获取对象的属性及属性值 函数代码例如以下: #调试函数.用于输出对象的属性及属性值 def getAllAttrs(obj): strAttrs = '' for o in dir(obj): strAttrs =strAttrs + o + ' := ' + str(getattr(obj,o)) + '<br

c# 获取某个对象的[公有属性]的名称,类型,值

/// <summary> /// 获取某个对象的[公有属性]的名称,类型,值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string GetPropertyValue<