[javascript] LoDash : 객체 속성 배열에서 값 배열 가져 오기

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.

_.map(users, 'id'); // [12, 14, 16, 18]

이 방법은 작성하는 네이티브 Array.prototype.map 메소드에 해당합니다 (ES2015 구문).

users.map(user => user.id); // [12, 14, 16, 18]

v4.x 이전 _.pluck에는 같은 방식으로 사용할 수 있습니다 .

_.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]


답변

팝업에서 원하는 것을 제공합니다.

for(var i = 0; i < users.Count; i++){
   alert(users[i].id);
}