質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Underscore.js

Underscore.jsは、JavaScriptのためのユーティリティライブラリです。JavaScriptの関数・配列、オブジェクトを扱う際に度々発生する処理がメソッドとしてまとめられています。他のライブラリに依存しないため、稼働中のアプリケーションにも導入可能です。

Q&A

解決済

1回答

3695閲覧

【Underscore】[配列の中から指定したキーだけを取得したい]

star24star

総合スコア115

Underscore.js

Underscore.jsは、JavaScriptのためのユーティリティライブラリです。JavaScriptの関数・配列、オブジェクトを扱う際に度々発生する処理がメソッドとしてまとめられています。他のライブラリに依存しないため、稼働中のアプリケーションにも導入可能です。

0グッド

0クリップ

投稿2016/01/28 06:19

Underscore.js

1var status = 2[ 3 {id:1, name: 'A', age: 1}, 4 {id:1, name: 'A', age: 2}, 5 {id:1, name: 'A', age: 3}, 6 {id:2, name: 'B', age: 4}, 7 {id:2, name: 'B', age: 5}, 8 {id:2, name: 'B', age: 4}, 9 {id:3, name: 'C', age: 6}, 10];

【やりたい事】
statusという配列の中からidnameを取得したい
statusの中からageを削除するという事はしない

【理想の結果】

Underscore.js

1{id:1, name: 'A'}, 2{id:1, name: 'A'}, 3{id:1, name: 'A'}, 4{id:2, name: 'B'}, 5{id:2, name: 'B'}, 6{id:2, name: 'B'}, 7{id:3, name: 'C'},

【試してみた事】
_.pluck(status, 'id', 'name') => idしか取得できない
_.pick(status, 'name', 'age') => 何も取得できない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

statusという変数名は下記のJSのメソッド名と同じなので別の変数名にします。
(グローバル変数でのstatusという定義は、JSではwindow.statusと同義なので)

http://javascriptist.net/ref/window.status.html

元々のオブジェクトが、配列と連想配列を組み合わせたものです。
今回のケースだと、配列の中にある連想配列から、特定のキーだけをピックアップした、新しい配列を作る必要があります。
そこで、mapとpickを併用します。

配列から新しい配列を作る→map
連想配列から特定のキーのものを抽出する→pick

JavaScript

1var st = [ 2 {id:1, name: 'A', age: 1}, 3 {id:1, name: 'A', age: 2}, 4 {id:1, name: 'A', age: 3}, 5 {id:2, name: 'B', age: 4}, 6 {id:2, name: 'B', age: 5}, 7 {id:2, name: 'B', age: 4}, 8 {id:3, name: 'C', age: 6}, 9]; 10 11var test = _.map(st, function(item, index){ 12 return _.pick(item, 'id', 'name'); 13}); 14 15console.log(test);

投稿2016/02/05 23:04

編集2016/02/05 23:06
yamato_hikawa

総合スコア2092

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

star24star

2016/02/19 02:24

有難うございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問