JavaScript知识点补充

来源:互联网 发布:万象ol怎么清除数据库 编辑:程序博客网 时间:2024/06/07 12:54

深拷贝

//递归方式function deepCopy(source){    if(!source || typeof source !== 'object'){     throw new Error('error arguments', 'shallowClone');   }   var targetObj = source.constructor === Array ? [] : {};   for(var keys in source){      if(source.hasOwnProperty(keys)){         if(source[keys] && typeof source[keys] === 'object'){           targetObj[keys] = source[keys].constructor === Array ? [] : {};           targetObj[keys] = deepClone(source[keys]);         }else{           targetObj[keys] = source[keys];         }      }    }   return targetObj;}
// 利用JSON序列化实现一个深拷贝function deepClone(source){  return JSON.parse(JSON.stringify(source));}

浅复制

function shallowCopy(source){    if (!source || typeof source !== 'object') {        throw new Error('error arguments');    }    var targetObj = source.constructor === Array ? [] : {};    for (var keys in source) {        if (source.hasOwnProperty(keys)) {            targetObj[keys] = source[keys];        }    }    return targetObj;}

数组分割成若干个n个数组

function getNewArr(arr,size){  var result = []  for (var i = 0; i < arr.length; i = i + size) {    var tem = [];    for (var j = i; j < size + i; j++) {      if (j < arr.length) {        tem.push(arr[j])      }    }    result.push(tem)  }  return result;}var arr = [1, 2, 3, 4, 5, 6]var size = 3console.log(getNewArr(arr,size))

JS获取页面所有元素并统计每个标签的个数

var tags = document.getElementsByTagName('*');var tagsArr = [];for(var i=0;i<tags.length;i++){  tagsArr.push((tags[i].tagName).toLocaleUpperCase())}//去重函数,返回json数据function unique(arr) {  var json = {}  for (var i = 0; i < arr.length; i++) {    !json[arr[i]] ? (json[arr[i]] = 1) : (json[arr[i]]++);  }  return json;}unique(tagsArr)
原创粉丝点击