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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

2回答

942閲覧

jQeuryでgrep()やmap()を試してもうまくいかない

tefu-tefu

総合スコア29

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

2クリップ

投稿2019/10/21 14:27

下の「obj」から、

allowがnullなら
{ color:'enable', shape:'disable' } を取得

allowが 'enable' なら
{ color:'enable' } を取得

みたいな感じで取得したいです。

nullの方はできてますが、allowでの引数指定がうまくいかなくって…どうぞお手伝い頂けましたら幸いです。

まずgrep()というのを調べて下記を試しましたが、これじゃダメ。

function hoo( name, allow=null ){ const obj = { apple : { color:'enable', shape:'disable' }, melon : { color:'enable', shape:'enable' } }; let result; if( allow==null ){ result = obj[name]; } else{ result = $.grep(obj[name], function (e) { return e == allow; }); } return result; } var result1 = hoo('apple'); console.log(result1); var result2 = hoo('apple', 'enable'); console.log(result2);

さらにmap()というのも試しましたがこれもダメでした。

function hoo( name, allow=null ){ const obj = { apple : { color:'enable', shape:'disable' }, melon : { color:'enable', shape:'enable' } }; let result; if( allow==null ){ result = obj[name]; } else{ result = $.map(obj[name], function(value, index) { if( value==allow ){ return value; } }); } return result; } var result1 = hoo('apple'); console.log(result1); var result2 = hoo('apple', 'enable'); console.log(result2);

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

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

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

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

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

guest

回答2

0

jQuery では難しいかもしれないですね。

JavaScript

1 if (allow === null) { 2 return obj[name]; 3 } 4 5 return Object.entries(obj[name]).filter(a => a[1] === allow).reduce((a, c) => ({ ...a, [c[0]]: c[1] }), {});

投稿2019/10/23 09:33

x_x

総合スコア13749

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

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

0

こういうことですか?

javascript

1function hoo( name, allow=null ){ 2 const obj = { 3 apple : { color:'enable', shape:'disable' }, 4 melon : { color:'enable', shape:'enable' } 5 }; 6 return Object.entries(obj).filter(x=>{ 7 return (allow==null && 8 x[1].color=="enable" && 9 x[1].shape=="disable") || 10 (allow=="enable" && 11 x[1].color=="enable"); 12 }).reduce((x,y)=>(x[y[0]]=y[1],x),{}); 13}; 14 15console.log(hoo(1));// apple 16console.log(hoo(2,null));// apple 17console.log(hoo(3,"enable"));// apple,melon 18console.log(hoo(4,"test"));// 空 19

投稿2019/10/23 00:53

yambejp

総合スコア114839

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問