- ベストアンサー
.split()の語順を変数に代入し.sort()
var word = 'this is test'; word.split(' '); // [this, is, test] この配列の語順を変数に代入しつつ、アルファベット順に並び替え、最終的に以下のようにしたいと考えています。 <span data-n="2">is</span> <span data-n="3">test</span> <span data-n="1">this</span> よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
本題ではないですが、"This is a test" になっていないのが気になります…。 --- var word = 'this is test. this is test.', words = word.split(' '); // [this, is, test] for (var i = 0, l = words.length; i < l; ++i) { words[i] = {index: i, value: words[i]}; } words.sort(function (a, b) { return a.value > b.value; }); console.log(words); --- 実際に "This is a test" にすると期待通りに動作しないので、大文字を含むなら String#toLowerCase で小文字化するなり、String#charCodeAt を回す等の対策は必要になります。 # Re: donutshopさん
その他の回答 (1)
- sanzero
- ベストアンサー率56% (58/102)
splitして作った配列(words)と それとは別にsortした配列(sorted)を用意し sortした配列をforで回して indexOfでwordsの何番目かを取得する。 同じ単語がない場合に使えます。
お礼
ありがとうございました。
お礼
ご回答ありがとうございました。 おかげさまで、希望通りに動作させることができました。