에 두 배열에서 값을 결합 :내가처럼 보이는 배열이 자바 스크립트
이var data = [{"year":[1981],"weight":[3]},
{"year":[1982],"weight":[4]},
{"year":[1985],"weight":[7]}]
내 데이터 시리즈는 올해 1980 년에 시작하여 올해로 끝을 1986 년 내 작업이 입력되는 배열에 모든 누락 된 값; 내 경우 최종 배열은 다음과 같아야합니다.
var data = [{"year":[1980],"weight":[0]},
{"year":[1981],"weight":[3]},
{"year":[1982],"weight":[4]},
{"year":[1983],"weight":[0]},
{"year":[1984],"weight":[0]},
{"year":[1985],"weight":[7]},
{"year":[1986],"weight":[0]}]
이 작업을 두 단계로 구현했습니다. 먼저 길이가 7 개 (1980 년 - 1986 년) 인 빈 배열을 만들고 값이 각각 {"year": $CURRENT_YEAR, "weight": 0}
인 각 요소를 초기화합니다. 그런 다음 data
배열을 반복하고 빈 배열에서 현재 연도의 인덱스를 찾고 year
및 weight
필드를 현재 값으로 바꿉니다. 내 코드는 아래에 붙여 넣습니다.
코드가 좀 더 우아한 방식으로 다시 작성 될지 궁금합니다.
// Create empty array
var my_array = []
var length = 7
// 1st step
year = 1980
for (var i = 0; i < length; i++) {
my_array.push({"year": year, "weight": 0});
year++
}
// 2nd step
for (var j = 0; j < data.length; j++) {
curr_year = data[j]["year"][0];
curr_weight = data[j]["weight"][0]
var index = my_array.findIndex(function(item, i) {return item.year === curr_year})
my_array[index] = {"year": curr_year, "weight": curr_weight}
}
이유는 [1981]처럼 배열에 값이며, [3]? 당신은 그들에 더 많은 가치를 저장하려고합니까? 귀하의 코드는 첫 번째 단계에서는 값을 배열로 저장하지 않지만 두 번째 부분에서는 부분적으로 저장합니다. 따라서 둘 중 하나가 잘못되었습니다. 코드 코드는 그렇게 작동하지 않습니다. – trincot
"코드를 좀 더 우아한 방식으로 다시 작성할 수 있을지 궁금합니다." - 이것이 귀하의 질문 인 경우 [codereview] (http://codereview.stackexchange.com/)에 게시하지 않아야합니까? – evolutionxbox
글쎄, 코드 분명히 OP가 요구하는 일을하지 않습니다, 그래서 나는이 질문을 정말 "*이 결과 (....), 그리고 원하는 결과를 얻을 수 있기 때문에 작동하지 않습니다"라고 다시해야한다고 생각 (...). 내가 뭘 잘못 했니? "*. CodeReview 용 아닙니다. – trincot