数组处理技巧

1.针对数组的逻辑判断

  1)写一个函数,功能是判断字符串是否为对称的字符串;

  涉及数组处理方法:1.concat();2.reverse();

  function judgeStr(str) {

    var a = str.split(‘‘);

    var b = a.concat([]).reverse();

    var i;

    var count = 0;

    for(i = 0;i< Math.ceil(a.length / 2);i++ ) {

      if(a[i] === b[i]) {

        count++;

      };

    };

    if(count === Math.ceil(a.length / 2)) {

      console.log("这是一个对称字符串");

    }else {

      console.log("这不是一个对称字符串");

    }

  };

2.数组去重

  传统方法(只用来处理number类型):

function uniq(arr) {
   var len = arr.length,
       i,
       j;
   for(i = 0; i < len; i ++) {
      for( j = i + 1; j < len; j ++) {
          if(arr[j] === arr[i]) {
              arr.splice(j, 1);//去掉重复的数,数组长度减一;循环次数减一,索引值j减一,保证数组中所有数都参与查重判断;
              len --;
              j --;
          }
      }
   }
   return arr;
}

  多中类型的元素的数组去重;

function uniq(a) {
                    var prims = {"boolean":{}, "number":{}, "string":{}},//数组元素类型              objs = [];
                    return a.filter(function(item) {  //Array原型对象prototype的filter方法,可以实现数组的遍历。
                            var type = typeof item;
                            if(type in prims) {
                                return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true); //hasOwnProperty()对象的一个方法                                                                //用来判断某个属性是否存在;若存在则返回true;                  }else { //数组元素为非布尔,数字,字符串时的判断操作,因为元素若为对象无法进行比较(obj1===obj2,即使看起来一样,但是返回值仍为false)
                                return objs.indexOf(item) >= 0 ? false : objs.push(item); //当数组中不存在该数是插入到新数组中;                  }
                    });
            }

暂存.

  attr和data都是取自定义属性的
  attr是取属性自身的值;
  data是取内存中的值;

  通过修改data,自定义属性值看起来不会改变,用attr去取值,仍为初始值,而在内存中的自定义属性值已经改变了;

时间: 2024-10-14 20:24:37

数组处理技巧的相关文章

js实现过滤重复字符和重复数组-javascript技巧

js实现过滤重复字符 <script type="text/javascript"> <!-- String.prototype.noRepeatStr=function(){ var tempArr=new Array(); for(var i=0;i<this.length;i++){ if(tempArr.join('').indexOf(this.charAt(i))==-1) tempArr[tempArr.length]=this.charAt(i)

数组小技巧sort()

var numberArray = [3, 6, 2, 4, 1, 5, 13];//实现对该数组的大小顺序序排列,输出[1,2,3,4,5,6,13]                  var arr2 = numberArray.sort(function(a, b) {                if(a > b) {                    return 1;                } else if(a < b) {                    r

节省创建对象数组的技巧

... 不管Student obj[10];//obj是指针首地址 还是Student* pStudent=new Student[10];...delete  pStudent; ... 实际上最终给各个对象初始化的时候调用的都是默认的构造函数(结构体是没有构造函数的),如果有重载的构造函数的话,再使用这种方式岂不浪费时间?以下是解决方法:class Student {public:     Student();     Student(char name[20],int age,float

php判断多维数组的技巧

直接上代码吧: if(count($array) == count($array, 1)){ echo '一维数组'; }else{ echo '多维数组'; } 看了下手册 int count (mixed $array_or_countable [, int $mode = COUNT_NORMAL ])如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数.对计算多维数组的所有单元尤其有用.

JS获取数组小技巧

有如下数组 var infoArray = strTest.split(";");            var points2;            for (var i = 0; i < infoArray.length; i++) {                var info = infoArray[i];                points2 = info + "," + points2;            }           

php数组使用技巧及操作总结

数组,可以说是PHP的数据应用中较重要的一种方式.PHP的数组函数众多,下面是一些小结,借此记之,便于以后鉴之. 1. 数组定义 数组的定义使用 array()方式定义,可以定义空数组:<?php $number = array(1,3,5,7,9); //定义空数组 $result = array(); $color =array("red","blue","green"); //自定义键值 $language = (1=>&quo

数组小技巧

问题一:在一个数组中找到差值最大的两个数字,要求小数在前大数在后,时间O(n) 想法:从前往后遍历的时候记录最大值和最小值,如果当前最大值在最小值的后面,更新差值的最大值 1 #include <algorithm> 2 #include <iostream> 3 #include <vector> 4 #include <cstdio> 5 6 using namespace std; 7 8 int readint(){ 9 int x;scanf(&q

【Monogdb】MongoDB之十大应用设计技巧

技巧一.速度和完整性的折中 在多个文档中使用的数据可以采用内嵌(反范式话)的方式,也可以采用引用(范式化)的方式.这种策略并没有优劣之分,各自都有优缺点.关键是要选择适合自己的应用场景方案. 反范式化会产生不一致的数据.但要是范式化,应用则必须在每次确认时做额外一次查找.因为极高的性能和瞬间一致性不可兼得,所以必须要想清楚哪个才是应用最需要的. 考虑因素一般包括: 是否总要额外读取一次几乎不怎么改变的数据? 一致性很重要吗? 要不要快速读取? 技巧二.适应未来的数据要范式化 范式化可使数据可用性

Go数组、切片、映射的原理--简明解析

数组.切片.映射是Golang的最重要的数据结构,下面是对这3种数据结构的一点个人总结: 一.数组 数组是切片和映射的基础数据结构. 数组是一个长度固定的数据类型,存储着一段具有相同数据类型元素的连续内存块. 因为数组占用的内存是连续分配的,所以对数组的操作速度很快. 声明数组的方式:4种 var array1 [5]int array1 := [5]int{3,5,6,3,2} array1 := [...]int{3,4,7,8,1} //根据数组字面量中元素的个数来确定数组的长度 arra