js数据处理

2019年即将过去,回想一下这一年所经历的事情遇到的人和失去的一些东西,该以一个什么样的心态去迎接新的一年的到来...

树形数据转换

在处理商品分类数据、企业列表数据等情况下,后台会返回到前台所有的数据。我们需要根据parentId,数据ID将数据转换为树形数据进行渲染。

export function treeDataTranslate(data, id = 'id', pid = 'parentId') {
  var res = []
  var temp = {}
  for (var i = 0; i < data.length; i++) {
    temp[data[i][id]] = data[i]
  }
  for (var k = 0; k < data.length; k++) {
    if (temp[data[k][pid]] && data[k][id] !== data[k][pid]) {
      if (!temp[data[k][pid]]['children']) {
        temp[data[k][pid]]['children'] = []
      }
      if (!temp[data[k][pid]]['_level']) {
        temp[data[k][pid]]['_level'] = 1
      }
      data[k]['_level'] = temp[data[k][pid]]._level + 1
      temp[data[k][pid]]['children'].push(data[k])
    } else {
      res.push(data[k])
    }
  }
  return res
}

定义对象并赋值

var ratio = {};
ratio.low = 70;
console.log(ratio ) //{low: 70}

找出两个数组中的交集

for循环
var arr1 = [1, 2, 3]
var arr2 = [3, 4, 5, 6]

var commonArr = []
for (var i = 0; i < arr1.length; i++) {
  var _item = arr1[i]
  for (var j = 0; j < arr2.length; j++) {
    if (_item === arr2[j]) {
      commonArr.push(_item)
    }
  }
}

ES6 的 filter 结合 includes 方法
var arr1 = [1, 2, 3]
var arr2 = [3, 4, 5, 6]

arr1.filter(item=>arr2.includes(item))

对象中的某个属性值拼接为字符串

//this.data对象数据   attr是属性
let attrs = this.data.map(item=>item.attr).toString();
posted @ 2019-11-28 10:05  写手在作画  阅读(435)  评论(1编辑  收藏  举报