• ベストアンサー

.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> よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.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さん

donutshop
質問者

お礼

ご回答ありがとうございました。 おかげさまで、希望通りに動作させることができました。

その他の回答 (1)

  • sanzero
  • ベストアンサー率56% (58/102)
回答No.1

splitして作った配列(words)と それとは別にsortした配列(sorted)を用意し sortした配列をforで回して indexOfでwordsの何番目かを取得する。 同じ単語がない場合に使えます。

donutshop
質問者

お礼

ありがとうございました。

関連するQ&A