Tôi đã một đối tượng có cấu trúc như thế này:Bắt một đối tượng từ _.pluck với lo-dash/nhấn
var my_object = {
first_item: {important_number: 4},
second_item: {important_number: 6},
}
Tuy nhiên, tôi muốn một đối tượng có cấu trúc như thế này:
{
first_item: 4,
second_item: 6,
}
tôi dự kiến có thể nhận được kết quả này với _.pluck
:
_.pluck(my_object, "important_number")
Nhưng điều này mang lại cho tôi:
[0: 4, 1: 6]
Tốt, nhưng tôi cần tên thật của đối tượng. Tôi đã chơi đùa và kết thúc với điều này:
_.reduce(my_object, function(memo, val, key) {
memo[key] = val.content;
return memo;
}, {});
Có hiệu quả mong muốn, nhưng không đơn giản như tôi muốn. Có một giải pháp tốt hơn trong gạch dưới/lodash, hoặc là tốt nhất nó sẽ nhận được?
Vì tất cả các điều tra viên gạch dưới đều trả về mảng, đây là điều tốt nhất bạn sẽ nhận được (mặc dù bạn có thể ngắn hơn nhưng kém hiệu quả hơn như 'zip (keys (obj), pluck (values (obj)," content "))'). – Bergi
Tôi chỉ cần thiết lập một thử nghiệm JSPerf cho 2, và trong trình duyệt của tôi, tùy chọn của bạn nhanh hơn 2%! http://jsperf.com/getting-an-object-from-pluck – JJJollyjim
Tuy nhiên, bạn đưa ra điều này: '[[" first_item ", 4], [" second_item ", 6]]' thay vì mong đợi '{ first_item: 4, second_item: 6} ' – JJJollyjim