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

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

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

D3.jsとは、データに基づいてHTMLやSVGドキュメントを編集するために作られた、小規模なオープンソースのJavaScript可視化ライブラリです。

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JavaScript

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

Q&A

解決済

2回答

638閲覧

アロー関数で書かれたforEachの変換

yama3go

総合スコア15

D3.js

D3.jsとは、データに基づいてHTMLやSVGドキュメントを編集するために作られた、小規模なオープンソースのJavaScript可視化ライブラリです。

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JavaScript

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

0グッド

0クリップ

投稿2019/04/24 15:51

###前提・実現したいこと
ネイティブの方が作られたアロー関数のコードですが、うまく使える形に変換して欲しいです。
3行目のd.value = +d.valueの所で+と=が逆のような気もしています。(4,6行目も同様)
5行目もコード文中に?が登場していて何のことなのかよくわかっておりません。

javascript

1 2brandData = d3.csv('https://gist.githubusercontent.com/johnburnmurdoch/2e5712cce1e2a9407bf081a952b85bac/raw/08cf82f5e03c619f7da2700d1777da0b5247df18/INTERBRAND_brand_values_2000_2018_decimalised.csv') 3//↑csvファイルは問題なく取得できます。 4brandData.forEach(d => { //=>アロー関数でdを引数とする 5d.value = +d.value, //+と=が逆なのでは? 6d.lastValue = +d.lastValue,//+と=が逆なのでは? 7d.value = isNaN(d.value) ? 0 : d.value,//isNaN以降が良く分からない(? 0 :) 8d.year = +d.year,     //+と=が逆なのでは? 9d.colour = d3.hsl(Math.random()*360,0.75,0.75) 10 });

発生している問題・エラーメッセージ

エラーメッセージ Uncaught ReferenceError: fanction is not defined

質問のまとめ

①アロー関数で書かれたコードを使える形にしたい
②+と=はこの位置で正しいのか知りたい
③?0:のある5行目はどのようなコードなのか知りたい

補足情報

元のコードは↓こちらになります。
https://observablehq.com/@johnburnmurdoch/bar-chart-race
ここで動いているバーチャートを作りたいと思っています。

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

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

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

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

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

azuapricot

2019/04/25 00:12

使える形になっているよーな 使えないというか、あなたがわからないだけですよね? 三項演算子なんてどこでも何やってても腐るほどでてきますし。
yama3go

2019/04/25 09:52

回答有り難うございます。 私自身プログラミングを初めて1ヶ月ほどなので、確かに自分の能力が低いので理解できていないだけです。 もう少し基礎学力を付けてから質問すれば良かったと反省しております。
guest

回答2

0

①アロー関数で書かれたコードを使える形にしたい

なんかエラーの原因が、エラーメッセージ的に「どこか別のところでfunctionをfanctionとタイポしてること」である気がしてて、実はアロー関数使えるんじゃないでしょうか

②+と=はこの位置で正しいのか知りたい

文字列(string)を数値(number)に変換することを意図したものだと思います。
とすればこの書き方であってます。

③?0:のある5行目はどのようなコードなのか知りたい

三項演算子ですね。
この行全体で、d.valueに数値として扱えない値が渡ってきた時にNaNではなく0であったことにする、という意味です。

投稿2019/04/24 16:54

set0gut1

総合スコア2413

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

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

yama3go

2019/04/25 09:55

エラーメッセージは間違えて別のメッセージを貼り付けてしまいました。 すみません。 アロー関数のコードでも動く事を知らなかったので勉強になりました。 色々親切にありがとうございます。 まだ解決出来ていませんが、少しづつ理解していきます。
guest

0

ベストアンサー

①アロー関数で書かれたコードを使える形にしたい

書かれている範囲のコードは正常だと思います。
エラーメッセージを見るに、本来はfunctionと書くべき箇所がfanctionとなっている箇所がどこかにあるのではないでしょうか?

②+と=はこの位置で正しいのか知りたい

おそらく正しいです。
これはあんまり綺麗な書き方ではないですが、おそらく文字列→数値変換をする意図で書かれているのだと思います。
javascriptでは、以下のように+をつけることで文字を数値にすることができます。

var hoge = "123"; console.log(typeof hoge); // → string console.log(typeof +hoge); // → number

③?0:のある5行目はどのようなコードなのか知りたい

三項演算子です。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

投稿2019/04/24 16:49

ku__ra__ge

総合スコア4524

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

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

yama3go

2019/04/25 09:59

①に関しては申し訳ありません。私が間違えて別のエラーメッセージを投稿してしまいました。 ②、③の事は大変勉強になりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問