이슬티
109
2019-10-09 21:59:02 작성 2019-10-09 22:00:01 수정됨
1
150

자바스크립트 배열 안에 있는 데이터 가공하는 방법에 대해 질문드립니다.


안녕하세요.

array1 배열을 array2처럼 변환하고 싶은데요..

var array1 =           [{a:"1", b:"1", c:"1", d:"1", e:"1"},
		        {a:"2", b:"2", c:"2", d:"2", e:"2"},
			{a:"3", b:"3", c:"3", d:"3", e:"3"},
			{a:"4", b:"4", c:"4", d:"4", e:"4"},
			{a:"5", b:"5", c:"5", d:"5", e:"5"},
			{a:"6", b:"6", c:"6", d:"6", e:"6"},
			{a:"7", b:"7", c:"7", d:"7", e:"7"},
			{a:"8", b:"8", c:"8", d:"8", e:"8"},
			{a:"9", b:"9", c:"9", d:"9", e:"9"},
			{a:"10", b:"10", c:"10", d:"10", e:"10"},
			{a:"11", b:"11", c:"11", d:"11", e:"11"},
			{a:"12", b:"12", c:"12", d:"12", e:"12"},
			{a:"13", b:"13", c:"13", d:"13", e:"13"},
			{a:"14", b:"14", c:"14", d:"14", e:"14"}];


var array2 =           [
				{
				a1:"1", b1:"1", c1:"1", d1:"1", e1:"1",
				a2:"2", b2:"2", c2:"2", d2:"2", e2:"2",
				a3:"3", b3:"3", c3:"3", d3:"3", e3:"3",
				a4:"4", b4:"4", c4:"4", d4:"4", e4:"4"
				},
				{
				a1:"5", b1:"5", c1:"5", d1:"5", e1:"5",
				a2:"6", b2:"6", c2:"6", d2:"6", e2:"6",
				a3:"7", b3:"7", c3:"7", d3:"7", e3:"7",
				a4:"8", b4:"8", c4:"8", d4:"8", e4:"8"
				},
				{
				a1:"9", b1:"9", c:"9", d1:"9", e1:"9",
				a2:"10", b2:"10", c:"10", d2:"10", e2:"10",
				a3:"11", b3:"11", c:"11", d3:"11", e3:"11",
				a4:"12", b4:"12", c:"12", d4:"12", e4:"12"
				},
				{a1:"13", b1:"13", c1:"13", d1:"13", e1:"13",
				a2:"14", b2:"14", c2:"14", d2:"14", e2:"14"}
			]

for문 돌면서 객체 4개를 하나의 객체에 몰아넣고, 속성의 key가 중복되면 안되니까 뒤에 번호를 붙이려고 합니다.(a -> a1 등)

for문을 어떤식으로 만들어야할지, 속성의 key값에 번호를 붙이려면 어떻게 해야될지 모르겠습니다...

선배님들의 견해를 여쭙고 싶습니다.

감사합니다.

-1
0
  • 답변 1

  • 제주감자
    21
    2019-10-10 10:47:10


    	var array1 = [{a:"1", b:"1", c:"1", d:"1", e:"1"},
    			{a:"2", b:"2", c:"2", d:"2", e:"2"},
    			{a:"3", b:"3", c:"3", d:"3", e:"3"},
    			{a:"4", b:"4", c:"4", d:"4", e:"4"},
    			{a:"5", b:"5", c:"5", d:"5", e:"5"},
    			{a:"6", b:"6", c:"6", d:"6", e:"6"},
    			{a:"7", b:"7", c:"7", d:"7", e:"7"},
    			{a:"8", b:"8", c:"8", d:"8", e:"8"},
    			{a:"9", b:"9", c:"9", d:"9", e:"9"},
    			{a:"10", b:"10", c:"10", d:"10", e:"10"},
    			{a:"11", b:"11", c:"11", d:"11", e:"11"},
    			{a:"12", b:"12", c:"12", d:"12", e:"12"},
    			{a:"13", b:"13", c:"13", d:"13", e:"13"},
    			{a:"14", b:"14", c:"14", d:"14", e:"14"}];
    	function translate(arr) {
    		function arrToObj(arr) {
    			return arr.reduce(function(acc, cur, i) {
    				for (k in cur) {
    					acc[k + (i+1)] = cur[k]
    				}
    				return acc
    			}, {}) 	
    		}
    		var result = []
    		for (var i=0;i<4;i++) {
    			var t = arrToObj(array1.slice(i*4, (i*4)+4))
    			result.push(t)
    		}
    		return result
    	}
    	
    	
    	console.log(translate(array1))

    능력자 분들은 더 이쁘게 짜실거 같은데 

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.