2017-04-13 5 views
0

私はここで少し深く、これが実際に可能であることを望んでいます。最初に大文字で始まる文字列を含むリストを表示するには

私はstackoverflowのを見て何もしてしばらくの間、今グーグルでてきた大文字で始まる項目は最初

来るように、私のリストを再アレンジ機能を呼び出すことができるようにしたいのですが。何かご意見は?例えば

、VAR項目= [バナナ、リンゴ、マンゴー、パイナップル、メロン]

彼らは大文字で始めると最初にアップルマンゴーとメロンを置くべき機能

+2

ようこそスタックオーバーフロー:)あなたが既に試したコードを投稿することが有用であろう。 – Triptych

+0

@triptychそれが可能かどうか疑問に思うだけで、どこから始めるべきか分かりません – Umar

+0

Apple Mango Melonを書いた順番に隠された要件がありますか?ソースから注文を保存しますか?多分、他の何か?部分的な順序付けは、最初の文字の場合のみに基づいて定義しました。 –

答えて

3
var items = ["banana", "Apple", "Mango", "pineapple", "Melon"] 

items.sort(); 

alert(items) 

ますこれで実際に動作することがわかりますfiddle

ascii tableでは大文字が小文字の前に来るのがこの理由です。リストを並べ替えると、文字列のascii値に基づいて行われます。

+1

あなたのコードがどのように機能するか、それが何であるかを説明する時間を取ってください。さもなければ、OPは何も学ばないでしょう。 –

+0

JavaScript文字列は、ASCIIではなくUTF-16コード単位のシーケンスです。さらに、 'sort'メソッドはUnicodeコードポイントで機能します。このテストケースを試してください:["meter"、 "Ångström"]。 –

2

最初の文字だけを見て、それが小文字かどうかを確認してから最後まで並べ替えることができます。リスト全体を文字列でソートしません。

この提案では、並べ替えの値を返すArray#sortのソート関数を使用します。値は2つの要素の間の関係を示します。ここで

var items = ['banana', 'Apple', 'Mango', 'pineapple', 'Melon', 'Apricot']; 
 

 
items.sort(function (a, b) { 
 
    return (a[0] === a[0].toLowerCase()) - (b[0] === b[0].toLowerCase()); 
 
}); 
 

 
console.log(items);

0

カスタマイズすることができます別の方法です。 jQueryを使って

startsWithCapitalLetter = function(string) { 
    return (string.charAt(0).toUpperCase() === string.charAt(0)); 
} 

var items = ['banana', 'Apple', 'Mango', 'pineapple', 'Melon']; 
var upper = []; 
var lower = []; 

for(var i=0; i<items.length; i++) { 
    if (items.hasOwnProperty(i)) { 
    if (startsWithCapitalLetter(items[i])) { 
     upper.push(items[i]); 
    } else { 
     lower.push(items[i]); 
    } 
    } 
} 

var sorted = upper.concat(lower); 
console.log(sorted); 

https://jsfiddle.net/jzvx2a12/1/

-1

私の答え。あなたはjavascriptから同等のコードを得ることができますが、ロジックはそこにあります。

HTML:

<div class="waka">wa</div> 
<div class="waka">we</div> 
<div class="waka">wi</div> 
<div class="waka">wo</div> 
<div class="waka">wu</div> 

JS:

var waka = ''; 
var weke = ''; 
var alert = ''; 
var i = 0; 
$(".waka").each(function(){ 
    waka = $(this).html()[0]; // You get first char from all your data 
    weke = $(this).html()[0].toUpperCase(); 
    if(waka == weke) { 
    alert = alert + 'Data ' + i + ' Is uppercase <br />'; 
} 
    else{ 
    alert = alert + 'Data ' + i + ' Is not uppercase <br />'; 
} 
i = i+1; 

}); 
$(".alert").html(alert); 

https://jsfiddle.net/syb886fk/1/

+0

これはどのようにして質問に答えると思われますか? – Sakuto

関連する問題