码迷,mamicode.com
首页 > 编程语言 > 详细

数组处理技巧

时间:2016-07-07 22:22:22      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

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去取值,仍为初始值,而在内存中的自定义属性值已经改变了;

数组处理技巧

标签:

原文地址:http://www.cnblogs.com/foxNike/p/5584251.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!