두 개의 배열 oldArray
및 newArray
이 있습니다. 새로운 가치가 newArray
에 입력되면 나는 oldArray
과 비교하고 새로운 가치를 끌어 내고 싶습니다.두 배열의 해시에서 차이점을 찾을 수
이러한 배열에서 나는 해시를 저장하고 있습니다.
예를 들면.
미세 처음 작동newElement = _.difference(newValue, oldValue)
하지만 때 내가 :
oldArray = []
newArray = [{"one": 1}]
은 내가 이런 식으로 뭔가를 할 수 underscore.js를 사용 {"one": 1}
있는 새로운 요소를 찾을 필요 돌아가서 배열에 더 추가 :
oldArray = [{"one": 1}]
newArray = [{"one": 1},{"two": 2}]
을 그리고 같은 일을 할
나는 새로운 객체로 돌아 오는 [{"one": 1},{"two": 2}]
을 얻습니다. 객체와 값을 비교하지 않기 때문입니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?
위
은 예입니다하지만이 두 내가 얻을 비교할 때 내 응용 프로그램에서 나는 콘솔oldValue map.js:85
[Object]
0: Object
$$hashKey: "007"
address: "england"
latLng: GeoCode
__proto__: Object
length: 1
__proto__: Array[0]
newValue map.js:83
[Object, Object]
0: Object
$$hashKey: "007"
address: "england"
latLng: GeoCode
__proto__: Object
1: Object
$$hashKey: "009"
address: "france"
latLng: GeoCode
__proto__: Object
length: 2
__proto__: Array[0]
에서이 뽑아 한 : 나는이 프로젝트에 AngularJS와 밑줄을 사용하고
[Object, Object]
0: Object
$$hashKey: "007"
address: "england"
latLng: GeoCode
__proto__: Object
1: Object
$$hashKey: "009"
address: "france"
latLng: GeoCode
__proto__: Object
length: 2
__proto__: Array[0]
을 현재.
아마도이 작업을 수행하는 것이 훨씬 더 좋습니다. 그 배열에서 "다른"객체를 꺼내기 만하면됩니다. 그래서 나는 그것을 다른 것을하기 위해 사용할 수 있습니다. 항상 마지막 요소가되는 것은 아닙니다.
UPDATE 나는 또한하지만 같은 결과를 자바 스크립트 배열 설정 수학 라이브러리를 시도하고 .substract
을 사용했다
. 이것은 해시가 바뀌고 있음을 의미해야합니다. 그러나 그들은 내게 보이지 않습니다.
이 내용을 얻으려면 oldArray
과 newArray
저는 각도 $ 시계를 사용하고 있습니다.
jsfiddle.net과 같이 축소 된 테스트 케이스를 제공 할 수 있습니까? – Dogbert