あ、う~、ん~、みおぼえのあるあこーどだとおもったら…。
(think49 さん、フォローありがとうございます。おほめいただき(?)こうえいです^^;)
わたし、「本」については、かたることができません。
なぜなら、こうにゅうしたほんは「ポケットリファレンス」と「The Good Parts」だけ。
えいごもさっぱりです。わやくのりふぁれんすでもないと、おてあげです。
もし、いかのようなもんだいを下のようなこーどでとくかいせつしょなら、せつにかいたいとおもいます。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1075728660
<script type="application/javascript; version=1.8">
let permutation =
(let (x = ['a', 'b', 'c', 'd', 'e', 'f', 'g'])
[[ x[a] + x[b] + x[c] + x[d] + x[e] + x[f] + x[g]]
for (a in x)
for (b in x)
for (c in x)
for (d in x)
for (e in x)
for (f in x)
for (g in x)
if (a != b && a != c && a != d && a != e && a != f && a != g &&
b != c && b != d && b != e && b != f && b != g &&
c != d && c != e && c != f && c != g &&
d != e && d != f && d != g &&
e != f && e != g &&
f != g)
]);
document.write (permutation.join ('<br>'));
alert(permutation.length);
</script>
--
> 最初のfunction find (_, n) {の部分で_は何か、nに何が入るのか…
もともとかんすう find は、onclick でよばれる「いべんとはんどら」でした。
そしてそのだい1ひきすうは、いべんとおぶじぇくとときまっています。
ほんらいであれば、
function find (event, n) {~
のようにかくべきでした。
しかし、そのかんすうではへんすう n こそがじゅうようです。
event はつかわれていないのでめだたないように "_" をつかいました。
--
[3,2,4].forEach (
function (n, i) { find.call (this[i], null, n); },
document.querySelectorAll ('#kensaku select[name^="sel_"]');
これの this は、document.querySelectorAll ('#kensaku select[name^="sel_"]') であつめた、いきていないのーどりすとです。 (ふくすうの select ようそです)
へんすう n には、それぞれ 3,2,4 がだいにゅうされ、かんすう find がそれぞれよばれます。
(へんすう i は、いま はいれつのなんばんめかをしめす、いんでんとばんごうです。)
よびだすときにいべんとがおこったわけでもないので、だい1ひきすうには、なにもつけません。
(function.call でよびだすと、this が1ばんめになるので1つずれる)
かんたんにいえば、あつめた select ようそそれぞれに、 3、2、4をつけて find にわたすため。
そもそもそのこーどは、さいしょにかいたこーどを、むりやりつかおうとやっつけでかいたものです。
--
var hoge = function () { //....(4)
var a = '聞くだけ聞いて返事のしないやつは嫌いだ'; //...(3)
return function () { //...(2)
alert (a); //.......(1)
};
} ();
hoge ();
(1) からみると、かんすう(2) にはへんすう(3) がありません。
なので、めんどうですが、さらにそとのかんすう(4) まで、けんさくにいきます。
したのこーども、country をさがしに、そとへさがしにいきます。
var country = ['中国', '韓国', 'タイ', '台湾', 'ブータン'];
var friends = [2,3,4];
var result = friends.map (function (f) { return country[f]; });
var fish = [2];
alert(result);
ところが、#Array.map (forEach, filter などなども) には、さがさずにすむうほうがあります。
それが this です。
var country = ['韓国', '中国', 'タイ', '台湾', 'ブータン'];
var AntiJapanese = [0,1];
var result = AntiJapanese.map (function (f) { return this[f]; }, country);
うえのれいだいは、つかいかたがちがう!と、してきされそうなので filter をつかう
var result = country.filter (function (_, i) { return -1 < this.indexOf(i); }, fish);
(ちょっと笑うところ)
ところが、#Array.reduce などつかえないものもあります。
(とてもざんねんです)
--
Q. [1,2,3,4,5,6,7,8,9,10] の合計を求めよ
A.
var a = [1,2,3,4,5,6,7,8,9,10];
var t = 0;
for (var i = 0, I = a.length; i < I; i++) {
t += a[i];
}
alert (t);
--
A
// はいれつに 0 がないもとのする
for (var a = [1,2,3,4,5,6,7,8,9,10], i, n, t = i = 0; n = a[i++]; t += n); alert (t);
A. JS1.8
alert ([1,2,3,4,5,6,7,8,9,10].reduce (function (r, n) { return r + n; }, 0));
--
A. JS1.8ならさらにしょうりゃくできるので
alert ([1,2,3,4,5,6,7,8,9,10].reduce (function (r, n) r + n));
--
私は、「井の中の蛙」だと思っています。しかもかなり深い井戸の中に居ます。
そこに餌を投げ入れてくれる人々(think49さんもそのお1人/*好感度アップ返し*/)がいらっしゃいます。
これがまたかなり濃厚なのです。
「海を見てみろ」と言っているようなのですが。
吸盤が小さいとか。
遠くが見にくくなったとか。
はたまた体重が重いとか・・・。
お礼
パーフェクトJavascriptだけにしました。 大変参考になりました。ありがとうございました。