2017-12-14 3 views
1

데이터를 전달하는 websocket을 열고 데이터는 날짜 유형의 타임 스탬프와 유형 번호의 가격을 포함하는 객체입니다.마지막으로 특정 번호가 붙은 JavaScript 배열의 액세스 위치

* 매분 말 마지막 가격에 액세스해야합니다. *

그래서 Date에 .getMinute() 메소드를 사용 했으므로이 시간이 반환됩니다. 예를 들어, 날짜가 2017-12-14T00 : 26 : 19.944Z이고 가격이 19.99이면 다음과 같은 개체를 만듭니다. {time : 26, price : 19.99}

배열과 과정은 ... 을 반복 ... 그래서 내가 이렇게 같은 배열을 할 수 :

I마다 속성에 대한 마지막 가격에 접근 할 필요가
[{time: 26, price: 19.99}, {time: 26, price: 17.99}, {time: 26, price: 22.45}, {time: 27, price: 25.21}] 

- 나는 22.45의 가격에 접근 할 필요가 있으므로 위 새로운 배열로 밀어 넣습니다.

감사합니다. 감사합니다.

답변

1

같은 당신은 objects 같은 이름의 중복 속성을 가질 수 있다는 사실을 이용할 수있다.

실용적인 예는 아래를 참조하십시오.

사항은 reduce() 기능의 사용은 object form{time: price}에 도달하고 이후 map() 기능은 원래 array form[{time, price}..]로 돌아갑니다.

결과는 각각 minutelatest price 만 포함 된 array입니다.

// Original Data. 
 
const data = [{time: 26, price: 19.99}, {time: 26, price: 17.99}, {time: 26, price: 22.45}, {time: 27, price: 25.21}] 
 

 
// Object Form. 
 
const unique = data.reduce((accumulator, point) => ({...accumulator, [point.time]: point.price}), {}) 
 

 
// Array Form. 
 
const array = Object.keys(unique).map((time) => ({time, price: unique[time]})) 
 

 
// Result. 
 
console.log('Object Form', unique) // Object Form. 
 
console.log('Array Form', array) // Array Form.

0

아마

let newArr = [timeArr[timeArr.lenght - 1].price] 
or 
otherArr.push(timeArr[timeArr.lenght - 1].price) 
0

간단한 단지

let lastPrice = data[data.length - 1].price; 

let data = [{time: 26, price: 19.99}, {time: 26, price: 17.99}, {time: 26, price: 22.45}, {time: 27, price: 25.21}] 
 

 
let lastPrice = data[data.length - 1].price; 
 
console.log(lastPrice);

0

아래 배열 값의 마지막 요소를 리턴되는 방법 이 간단한 함수와 같은 뭔가 작업을해야합니다 :

var getLatestTimestamp = function(arr){ 
 
    var lastTimestamps = []; 
 
    var l = arr.length -1 ; 
 
    \t 
 
    lastTimestamps.push(arr[l]); 
 
    for(var i = l; i > 0; i--){ 
 
    \t if(lastTimestamps[lastTimestamps.length -1].time !== arr[i].time) { 
 
    \t \t lastTimestamps.push(arr[i]); 
 
    \t } 
 
    } 
 
    
 
    return lastTimestamps; 
 
}; 
 
    
 
var arr = [ 
 
    {time: 26, price: 19.99}, 
 
    {time: 26, price: 17.99}, 
 
    {time: 26, price: 22.45}, 
 
    {time: 27, price: 25.21}, 
 
]; 
 
    
 
var distinctTimestamps = getLatestTimestamp(arr); 
 
    
 
console.log(distinctTimestamps); 
 
/* 
 
[ { time: 27, price: 25.21 }, { time: 26, price: 22.45 } ] 
 
*/