2017-12-14 3 views
2

の要素にシンボルをソートするために、私は、要素のシンボルのUnicodeで配列arrcinema(出力にそれが「aceinm」ようにされている必要があり)をソートする必要があります。私は、この場合、メソッドsort()を使用する必要があることを知っています。しかし、私はどのように配列要素のソート方法を注入知っている。使用方法ソート()配列

してください、助け。以下のコードは機能しません。

Error: arr[1].sort is not a function.

var arr = ["cinema"]; 

arr[1].sort(); 
console.log(arr[1]); 
+0

最初の要素ではなく、配列全体をコールソートします。単一の要素で配列をソートしようとしているのはなぜですか? –

+0

ソート後に 'arr'をどのようにするべきですか? – Mamun

+0

'[" cinema "]'をどのようにソートしても、結果は常に[["cinema"] 'になります。したがって、何もすることはできません。 – NikxDa

答えて

6

あなたの文字列をソートしたい場合は、簡単に文字列を分割し、参加することによってこれを行うことができます。

"cinema".split ("").sort().join ("") 
// aceimn 

それとも、あなたのケースで:

arr[0] = arr [0].split ("").sort().join ("") 
// arr: ["aceimn"] 

あなたは、アレイ内のすべての文字列をソートする必要がある場合は、map()を使用しています。

arr = arr.map (itm => itm.split ("").sort().join ("")) 
+0

ありがとう! これは私が望むのと同じです。 乾杯! –

2

あなたは手紙をソートするために、splitにあなたが持っても利用できないarr[1]を参照しています。

var arr = ["cinema"]; 
 
var sorted = arr[0].split('').sort(); 
 
console.log(sorted, sorted.join(''));

1

これは、あなたが欲しいものを行う必要があります。

var arr = ["cinema"]; 

console.log(arr[0].split("").sort().join("")); 

編集:私は、同じソリューションは、いくつか他の人によって提案されている参照してください。私は少しそれを拡張します。

cinemaという文字の文字でソートし、cinemaのインデックスが0であるため、arr [0]を呼び出して "cinema"という文字列を取得し、次に文字列をメソッド.split( " ")。これは、文字列を最初に試行した方法で.sort()できる配列に変換します。

"エラー:arr [1] .sortは関数ではありません"というエラーは、.sort()が文字列要素の関数ではないことを示しています。文字列を配列に変換すると(たとえば.split())、.sort()関数が使用可能になります。

+0

あなたの説明をありがとう! –

関連する問題