2017-04-08 25 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

对不起 - 不工作 – Jonas

回答

1

使用your code example你可以遍历数组MYAPPLICATION.Names与方法Array.prototype.forEach()和验证阵列中的每个元素的typeofstring

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(“内容”)的innerHTML = item'和最后,你只能看到最后一个元素 –

+0

更新了代码示例只有在'与div'元素打印字符串'id'内容 –

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]); 
} 

我希望这有助于。 :)

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

感谢您的代码段伟大的工作。 我能问有一件事你的帮助, 我如何去了解,如果我只希望,而不是打印出来的数字? 感谢 – Jonas

+0

改线'如果{继续(isNaN(名)!); 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>'); 
}