Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
371 views
in Technique[技术] by (71.8m points)

javascript - 合并JavaScript对象重复项(Combine JavaScript Object Duplicates)

I want to join the rest of the values with the same key in the Javascript object.(我想将其余的值与Javascript对象中的相同键连接在一起。)

want to solve it using vanilla script or lodash..(想使用香草脚本或lodash解决它。) example:(例:) obj = [ { M: 'M1', F: '123-test-123', CODE: 'A' }, { M: 'M1', F: '123-test-123', CODE: 'B' }, { M: 'M1', F: '123-test-123', CODE: 'C' }, { M: 'M2', F: '123-test-456', CODE: 'A' }, { M: 'M2', F: '123-test-456', CODE: 'A' } ... ] desired result:(预期结果:) obj = [ { M: 'M1', F: '123-test-123', CODE: 'A,B,C' }, { M: 'M2', F: '123-test-456', CODE: 'A,B' }, ... ] Thank you!!!(谢谢!!!)   ask by j3rry Yu translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use Array.reduce() to get that desired output:(您可以使用Array.reduce()获得所需的输出:)

var obj = [ { M: 'M1', F: '123-test-123', CODE: 'A' }, { M: 'M1', F: '123-test-123', CODE: 'B' }, { M: 'M1', F: '123-test-123', CODE: 'C' }, { M: 'M2', F: '123-test-456', CODE: 'A' }, { M: 'M2', F: '123-test-456', CODE: 'A' } ]; var res = obj.reduce((acc, item) => { let existItem = acc.find(({M, F}) => M === item.M && F === item.F); if(existItem) { existItem.CODE += ',' + item.CODE; } else { acc.push(item); } return acc; }, []); console.log(res); Using another way besides, Array.reduce() :(使用Array.reduce()之外的另一种方法:) var obj = [ { M: 'M1', F: '123-test-123', CODE: 'A' }, { M: 'M1', F: '123-test-123', CODE: 'B' }, { M: 'M1', F: '123-test-123', CODE: 'C' }, { M: 'M2', F: '123-test-456', CODE: 'A' }, { M: 'M2', F: '123-test-456', CODE: 'A' } ]; var resObj = {}; obj.forEach((item) => { let settingValues = resObj[item.M] ? resObj[item.M].CODE += ',' + item.CODE : resObj[item.M] = item; }); console.log(Object.values(resObj));

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...