-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] 展開されているサブカテゴリノード数の制限 #4
base: master
Are you sure you want to change the base?
Conversation
論理削除だと少し遅い |
うまく動かない(原因調査中)
|
||
miil_categories.forEach(function (cate) { | ||
if (cate.category_id !== 588 && cate.category_id !== 589) { | ||
_this3.parseMiilCategories(cate, [_this3.getNodeIdxById('miilroot')]); | ||
_this4.parseMiilCategories(cate, [_this4.getNodeIdxById('miilroot')]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
forEachでは、thisObjectを二番目の引数で指定することができます。
thisの参照を増やさないで、この機能は積極的に使っていきましょう
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど,ありがとうございます。
この部分は,下のコードをbabelで変換したら出てきたのもので,アロー関数を使えば上手くthis
を補足してくれるものと思っていたのですが,
appLoad () {
miil_categories.forEach(cate => {
if (cate.category_id !== 588 && cate.category_id !== 589) {
this.parseMiilCategories(cate, [this.getNodeIdxById('miilroot')]);
}
});
this.drawGraph();
}
やはり,
arr.forEach(elem, self => { });
という2引数で書いた方が良いということですね。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど、babelで変換したのですね。
通常は、そういう場合for of構文を使います。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...of
[1, 2, 3].forEach(elem => console.log(this.a));
は、
for (let elem of [1,2,3]) {
console.log(this.a);
}
と同値です。インデックスをとらないようなforEachをbabelで使うときは、for ofを使っていきましょう。
ついでに、forEachよりJSではインデックスアクセスの方がArrayオブジェクトにとっては効果的(まず、関数オブジェクトがforEachは必ず作成されますし、関数呼び出しのオーバーヘッドもかかるので)なため、for ofの場合、for(var i = 0; ...) { ... }
といった感じで変換されます。
No description provided.