如何从二维数组重组合并成新的数组?

如何从二维数组重组合并成新的数组?,第1张

给你给思路吧, 遍历对象数组, 然后将每个对象中值为空的属性删掉, 然后用 Object.assign()来合并数组中的对象(已经删掉了空值属性)

const data = [

{

"name": "kkkk",

"hospital_num": "qwe",

"outpatient_num": "",

"attendance_num": "",

"card": "kkkk",

"birthday": "kkkk",

"phone": "kkkk",

"gender": 1,

"address": "kkkk"

},

{

"name": "kkkk",

"hospital_num": "qwe",

"outpatient_num": "",

"attendance_num": "",

"card": "kkkk",

"birthday": "kkkk",

"phone": "kkkk",

"gender": 1,

"address": "kkkk"

},

{

"name": "kkkk",

"hospital_num": "",

"outpatient_num": "aaaa",

"attendance_num": "aaaa",

"card": "kkkk",

"birthday": "kkkk",

"phone": "kkkk",

"gender": 1,

"address": "kkkk"

}

]

let result = {}

for(const d of data){

Object.keys(d).forEach(p =>{

if(d[p] === ''){

delete d[p]

}

})

Object.assign(result, d)

}

console.log(result)

while [ 1 -eq 1 ]##无限循环直到所有文件相同的文件合并成功

do

i=0 ##使用数组应该好一些

j=0

for a in $(ls /xxx/xxx/*)

do

b[$i]=$a##获取的所有文件赋予给数组

let i=i+1

done

while [ j -ln ${#b[@] ] ##文件有多个次,循环多少次,拿文件比较

do

for c in $(awk 'for(i=1i<=4i++){printf $i}' ${b[$j]}) ##文件里面有多少数据,循环多少次

do

let d=j+1

e=`cat ${b[$d]}|grep $c` ##拿第一个文件与后面一个文件比是否存有相同的数

if [ $e -eq 1 ]

then

sort -u ${b[$j]} ${b[$d]} >$j.txt ##如果有重复的就合并到文件,没有继续与第3个文件比较

break ##然后终止循环,为什么要终止循环?因为合并的文件还有可能与后面的文件重## 复数字,故退出循环,进入大的循环再获取新的文件比较

else if [ j -eq $(${#b[@]-1) ] ##如果比到倒数第二个文件和最后一个文件没有没有相似点则退出程序,##比较完毕

exit

fi

done

then

exit

fi

done

done


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7604979.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存