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

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

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

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

449閲覧

filter関数で、設定した条件に合う配列の中から特定の値のみを取得したい

ARIA-0

総合スコア11

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

1クリップ

投稿2023/01/18 09:58

前提

Reactを利用してアプリケーションを作成しています。
調べていた中で、良い例の記事があったのでそこからコードを抜粋して質問させていただきます。

実現したいこと

いくつかある配列の中から条件に合う配列を抽出し、抽出した配列の中の特定の値のみを取得したいと思っております。

ソースコードを例にすると、
今のコードでは「populationが1000以上の配列」を条件とし、結果として2つの配列が取得できています。
ここから、その取得した2つの配列内の'country'の値のみを取得することが、実現したいこととなります。

自分でも記述方法を変えたりなど、色々試してみたのですがどの方法もうまくいかなかったので、何か少しでもわかる方がいましたら、ご教授いただきたいです。
よろしくお願いいたします。

該当のソースコード

const array = [ {'ranking': 1, 'country': 'China', 'population': 1448.5}, {'ranking': 2, 'country': 'India', 'population': 1406.6}, {'ranking': 3, 'country': 'USA', 'population': 334.8}, {'ranking': 4, 'country': 'Indonesia', 'population': 279.1}, {'ranking': 5, 'country': 'Pakistan', 'population': 229.5} ]; const filterResult = array.filter( function (value) { return value.population >= 1000; }) console.log('抽出結果: ', filterResult);
抽出結果: [ { ranking: 1, country: 'China', population: 1448.5 }, { ranking: 2, country: 'India', population: 1406.6 } ]

試したこと

まずはconsole.logの部分を以下のように変更してみましたが、undefinedが表示されました。

console.log('抽出結果: ', filterResult.country);

他には、フィルター関数を定義している部分以下を、次のように変更してみました。

const filterResult = array.filter( function (value) { return value.population >= 1000; }) const [countryName, setCountryName] = useState(); const testArray = () => { setCountryName(filterResult.country); console.log(countryName); };

こちらの関数の実行結果もundefinedでした。

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

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

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

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

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

miyabi_takatsuk

2023/01/18 10:54

countryのみが入ったオブジェクトが入った配列を取得したい、ということですか?
ARIA-0

2023/01/18 22:21

countryの値(China,Indiaなど)を取得したいです!
guest

回答1

0

ベストアンサー

mapでしょうか
( node.js で確認 )

js

1const countries = [ 2 {'ranking': 1, 'country': 'China', 'population': 1448.5}, 3 {'ranking': 2, 'country': 'India', 'population': 1406.6}, 4 ]; 5 6 7let countyNames = countries.map(function(element){ 8 return { 'country': element['country'] }; 9}) 10 11console.log(countyNames) // [ { country: 'China' }, { country: 'India' } ] 12 13

投稿2023/01/18 11:11

yuma.inaura

総合スコア1451

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

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

ARIA-0

2023/01/18 22:03

こちらの記述方法でcountryのみ抽出することができました! ありがとうございました!
ARIA-0

2023/01/18 22:20

もう1点、教えていただいてもよろしいでしょうか? { country: 'China' },{ country: 'India' }は抽出することはできたのですが、値のみを抽出することは可能でしょうか? こちらの場合、'China'と'India'のみを抽出したいと考えております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問