一维数组对象转化成二维数组
目标
var data = [
{ name: "小明", age: 18, sex: "男" },
{ name: "小明",age: 28, sex: "女"},
{ name: "小红" age: 38, ses: "女"}
]
function arry(data, list){
// 最终要返回的二维数组
let newArr = []
sourceData.forEach(function(item,index){
// 一级数组内包含的二级数组
let arr = []
// 遍历键值数组
Object.keys(item).forEach(function(key){
// 判断字段是否包含当前key值
if(list.includes(key)){
arr.push(item[key])
}
})
newArr.push(arr)
})
return newArr
}
console.log(arry(data, ['name','age']))//[["小明",18],["小红",28],["小蓝",22]]
二维数组转化成一维数组对象
目标: 将fgl、fgs单独抽离出来放在各自的数组中(如下所示)
fgl : [
{ city: '杭州', value: 100, provice: '浙江杭州' },
{ city: '成都', value: 99, provice: '四川成都' },
{ city: '苏州', value: 80, provice: '江苏苏州' },
{ city: '北京', value: 100, provice: '北京' },
{ city: '上海', value: 99, provice: '上海' },
{ city: '广州', value: 80, provice: '深圳广州' },
{ city: '武汉', value: 77, provice: '湖北武汉' },
{ city: '襄阳', value: 99, provice: '湖北襄阳' },
{ city: '宜昌', value: 80, provice: '湖北宜昌' },
];
fgs:[
{ city: '杭州', value: 88, provice: '浙江杭州' },
{ city: '成都', value: 89, provice: '四川成都' },
{ city: '苏州', value: 90, provice: '江苏苏州' },
{ city: '北京', value: 102, provice: '北京' },
{ city: '上海', value: 79, provice: '上海' },
{ city: '广州', value: 90, provice: '深圳广州' },
{ city: '武汉', value: 102, provice: '湖北武汉' },
{ city: '襄阳', value: 79, provice: '湖北襄阳' },
{ city: '宜昌', value: 90, provice: '湖北宜昌' }
]
var data = [ { fgl: [ { city: '杭州', value: 100, provice: '浙江杭州' }, { city: '成都', value: 99, provice: '四川成都' }, { city: '苏州', value: 80, provice: '江苏苏州' }, ],
fgs: [
{ city: '杭州', value: 88, provice: '浙江杭州' },
{ city: '成都', value: 89, provice: '四川成都' },
{ city: '苏州', value: 90, provice: '江苏苏州' },
],
},
{
fgl: [
{ city: '北京', value: 100, provice: '北京' },
{ city: '上海', value: 99, provice: '上海' },
{ city: '广州', value: 80, provice: '深圳广州' },
],
fgs: [
{ city: '北京', value: 102, provice: '北京' },
{ city: '上海', value: 79, provice: '上海' },
{ city: '广州', value: 90, provice: '深圳广州' },
]
},
{
fgl: [
{ city: '武汉', value: 77, provice: '湖北武汉' },
{ city: '襄阳', value: 99, provice: '湖北襄阳' },
{ city: '宜昌', value: 80, provice: '湖北宜昌' },
],
fgs: [
{ city: '武汉', value: 102, provice: '湖北武汉' },
{ city: '襄阳', value: 79, provice: '湖北襄阳' },
{ city: '宜昌', value: 90, provice: '湖北宜昌' },
],
}
]
var arr=[],newArr=[];
for (var i = 0; i < data.length; i++) {
arr.push(data[i].fgl)//二维数组[[],[],[]]
arry.push(data[i].fgs)//二维数组
}
initFgl(arr)
function initFgl(arr) {
// 循环二维数组
for (var j = 0; j < arr.length; j++) {
//循环二维数组的每一个子项
for (var t = 0; t < arr[j].length; t++) {
newArr.push(arr[j][t])//二维数组转化成一维数组对象[{},{}]
}
}
}
ps:fgs 二维数组转化成一位数组对象,也是同样做法