2017-04-08 15 views
2

私は学習初心者です。で、私のコードでJavascript配列 - 文字列のみを印刷する方法

: "https://codepen.io/JonasJsk/pen/qrzLzv"

MYAPPLICATION.DisplayNames = function() 
{ 
    var i, len, str; 
    for(i = 0, len = MYAPPLICATION.Names.length, str = ""; i < len; ++i) 
    { 
    str += MYAPPLICATION.Names[i] + "<br>"; 
    } 
    console.log(document.getElementById("content").innerHTML = str); 
} 

私は、文字列と数字の両方を持つjavascript配列を宣言しました。

1 - 私は具体的にどのように文字列をコンソールに出力することができるかを理解しようとしています。

私は数時間この状態になっています。私を助けてください!

+0

'はconsole.log(STR);' – LGSon

+0

申し訳ありません - 私はちょうどそれが唯一の配列の3番目の文字列を与えているあなたの方法を縛ら – Jonas

答えて

1

stringです:

var MYAPPLICATION = MYAPPLICATION || {}; 
 
MYAPPLICATION.Names = ["Superman", "Batman", "Flash", 66, 23, 97] 
 
MYAPPLICATION.DisplayNames = function() { 
 
    var content = document.getElementById('content'); 
 
    var ul = document.createElement('ul'); 
 
    MYAPPLICATION.Names.forEach(function (item) { 
 
    if (typeof item === 'string') { 
 
     var li = document.createElement('li'); 
 
     li.appendChild(document.createTextNode(item)); 
 
     ul.appendChild(li); 
 
    } 
 
    }); 
 
    
 
    content.innerHTML = ''; 
 
    content.appendChild(ul); 
 
}
<h2>Lab #2.1</h2> 
 

 
<button type="button" onclick="MYAPPLICATION.DisplayNames()"> 
 
    Get Names 
 
</button> 
 

 
<div id="content"></div>

+0

を働いていません。 をチェックしてください - https://codepen.io/JonasJsk/pen/qrzLzv – Jonas

+0

コンソールでは、すべての名前がログに記録されます。どうしたら 'document.getElementById(" content ")。innerHTML = item'とatあなたは最後の要素だけを表示する最後 –

+0

'id'コンテンツの' div'要素に文字列を表示するようにコード例を更新しました –

0

あなたはこのようtypeof演算子を使用することができます。

var aList = [1, 2, 3, "one", "two", "three"]; 

for(var i = 0; i < aList.length; i++) { 
    if(typeof(aList[i]) == "string") 
    console.log("This is a string : "+aList[i]); 
} 

私はこのことができます願っています。 :)あなたが方法Array.prototype.forEach()MYAPPLICATION.Names以上の配列を反復処理し、配列内のすべての要素typeofを検証することができyour code exampleを使用

0

私はあなたを理解していません質問...配列から数値を削除するか、console.logの情報のみを出力しますか?

とにかく、このいずれかを試してみてください。

var MYAPPLICATION = MYAPPLICATION || {}; 

MYAPPLICATION.Names = ["Superman", "Batman", "Flash", 66, 23, 97] 

MYAPPLICATION.DisplayNames = function() 
{ 
    //MYAPPLICATION.myJSON = JSON.stringify(MYAPPLICATION.Names); 
    var i, len, str; 
    for(i = 0, len = MYAPPLICATION.Names.length, str = ""; i < len; ++i) 
    { 
    if (!isNaN(MYAPPLICATION.Names[i])) { continue; } 
    str += MYAPPLICATION.Names[i] + "<br>"; 
    } 
    console.log(document.getElementById("content").innerHTML = str); 
} 

コンソールに印刷したくない場合は、またconsole.logを削除することができます。

同様:

var MYAPPLICATION = MYAPPLICATION || {}; 

MYAPPLICATION.Names = ["Superman", "Batman", "Flash", 66, 23, 97] 

MYAPPLICATION.DisplayNames = function() 
{ 
    var i, len, str; 
    for(i = 0, len = MYAPPLICATION.Names.length, str = ""; i < len; ++i) 
    { 
    name = MYAPPLICATION.Names[i] 
    if (!isNaN(name)) { continue; } 
    str += name + "<br>"; 
    } 
    document.getElementById("content").innerHTML = str; 
} 
+0

コードスニペットがうまくいきました。 もう1つのことをお手伝いしてもいいですか? 代わりに番号を印刷したい場合はどうすればいいですか? ありがとう – Jonas

+0

行を 'if(!isNaN(name)){continue; } 'if(isNaN(name)){continue; } ' –

0
MYAPPLICATION.DisplayNames = function() { 
    var stringsOnly = MYAPPLICATION.Names.filter(function(item) { 
     return typeof item === 'string'; 
    }); 
    document.getElementById("content").innerHTML = stringsOnly.join('<br>'); 
} 
関連する問題