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();