2017-10-06 3 views
-2

두 개의 jSON 파일이 있습니다. 동일한 설정 및 동일한 개체를 사용하는 두 개의 jSON 파일은 업데이트되지 않은 이전 데이터를 가지고 있으며, 다른 하나는 실시간으로 업데이트되는 실시간 데이터를 가지고 있습니다. 시간, 나는 새 데이터로 이전 데이터를 빼고 결과를 출력하고 싶습니다.동일한 개체가있는 2 개의 jSON 파일을 비교하십시오.

코드 그게 성공하지 사용 :

jQuery.getJSON(liveDataURL, function(liveData){ 

    jQuery.getJSON(oldDataURL, function(oldData){ 

     liveData.sort(function(a, b){ 
      return a.number - b.number; 
     }).reverse(); 
     oldData.sort(function(a, b){ 
      return a.number - b.number; 
     }).reverse(); 

     var newList = liveData.number - oldData.number; 
     console.log(newList); 
    }); 

어떤 도움에 감사드립니다!

답변

-1
var newList = liveData.number - oldData.number; 

이것은 목록 간의 차이를 찾는 잘못된 방법입니다. 숫자의 차이를 찾으려면이 작업을 수행하십시오.

두 목록의 길이가 같다고 가정합니다.

var newList = []; 
for (var i = 0; i < liveData.length; i++){ 
    newList.append(liveData[i].number - oldData[i].number); 
} 
+0

이 내가 원하는 것을 위해 작동하지 않았다 할 것. 죄송합니다 –

0

뺄셈이란 무엇입니까?

A = {foo는 : 17, 바 : 12, 바즈 : 거짓} B = {foo는 : 17, 줄 : 10}

"A - B"무엇을 무엇을 의미합니까?

가정 :

"A - B"= {바 : 12, 바즈 : 거짓}

가 이 같은

뭔가가 작동합니다

const delta = (a, b) => { 
    const d = {}; 
    Object.keys(a).forEach(key => { 
    if (typeof a[key] === 'object') { 
     d[key] = delta(a[key], b[key] || {}); 
     if (d[key] === undefined) { 
     delete d[key]; 
     } 
    } else { 
     if (a[key] !== b[key]) { 
     d[key] = a[key]; 
     } 
    } 
    }); 
    return Object.keys(d).length ? d : undefined; 
}; 
+0

내 솔루션 배열을 처리하지 않습니다 :-) - 독자를위한 운동. – podperson

+0

"return a.number -b.number"가장 높은 번호가 먼저 표시된 필터링 된 결과를 반환합니다. 나는 가장 높은 금액을 가진 저를위한 명부를 첫째로 분류하기 위하여 그것을 사용하고있다, 나는 그 때 2 개의 명부의 결과를 서로에게서 빼고 싶다. –

관련 문제