반응형
LoDash: 객체 속성 배열에서 값 배열 가져오기
분명히 로대쉬 문서 어딘가에 있을 텐데, 적절한 조합을 찾을 수가 없네요.
var users = [{
id: 12,
name: 'Adam'
},{
id: 14,
name: 'Bob'
},{
id: 16,
name: 'Charlie'
},{
id: 18,
name: 'David'
}
]
// how do I get [12, 14, 16, 18]
var userIds = _.map(users, _.pick('id'));
v4.x 버전부터는 다음을 사용해야 합니다.
_.map(users, 'id'); // [12, 14, 16, 18]
이 방법은 네이티브 Array.protype.map 메서드에 대응합니다(ES2015 구문).
users.map(user => user.id); // [12, 14, 16, 18]
v4.x 이전 버전에서도 동일한 방법을 사용할 수 있습니다.
_.pluck(users, 'id'); // [12, 14, 16, 18]
순수 JS의 경우:
var userIds = users.map( function(obj) { return obj.id; } );
새로운 Lodash 릴리스 v4.0.0 _.pluck
을 위해 제거되었다_.map
다음으로 다음을 사용할 수 있습니다.
_.map(users, 'id'); // [12, 14, 16, 18]
Github Changelog에서 볼 수 있습니다.
각 개체에서 여러 속성을 추출해야 하는 경우
let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));
ES6를 통해 심플하고 빠르게 입수할 수 있는 방법
let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]
네이티브 자바스크립트를 사용하는 경우 다음 코드를 사용할 수 있습니다.
let ids = users.map(function(obj, index) {
return obj.id;
})
console.log(ids); //[12, 14, 16, 18]
const users = [{
id: 12,
name: 'Adam'
},{
id: 14,
name: 'Bob'
},{
id: 16,
name: 'Charlie'
},{
id: 18,
name: 'David'
}
]
const userIds = _.values(users);
console.log(userIds); //[12, 14, 16, 18]
팝업창에서 원하는 정보를 얻을 수 있습니다.
for(var i = 0; i < users.Count; i++){
alert(users[i].id);
}
언급URL : https://stackoverflow.com/questions/28354725/lodash-get-an-array-of-values-from-an-array-of-object-properties
반응형
'IT' 카테고리의 다른 글
Java - JPA - @Version 주석 (0) | 2022.12.07 |
---|---|
SELECT ... FOR UPDATE를 사용할 때? (0) | 2022.12.07 |
숫자가 정확성을 잃지 않고 도달할 수 있는 JavaScript의 최대 정수 값은 얼마입니까? (0) | 2022.12.07 |
Java로 "time above"를 알려주세요. (0) | 2022.12.07 |
libcurl이 있는 HTTP 상태 코드? (0) | 2022.12.07 |