JavaScript - 当这些值相同时,如何使用 print 函数输出存储在数组中的 2 个值?

Posted

技术标签:

【中文标题】JavaScript - 当这些值相同时,如何使用 print 函数输出存储在数组中的 2 个值?【英文标题】:JavaScript - How can I use the print function to output 2 values that are stored in an array when those values are the same? 【发布时间】:2018-04-30 04:38:05 【问题描述】:
var students = [

    name : "Dave",
    track : "Front End Development",
    achievement: 158,
    points: 14703
,

    name : "Jody",
    track : "ios Development with swift",
    achievement: 133,
    points: 16303
,

    name : "Dave",
    track : "php Development",
    achievement: 55,
    points: 2023
,

    name : "Shawdesh",
    track : "Learn Wordpress",
    achievement: 40,
    points: 1950
,

    name : "Liton",
    track : "Rails Development",
    achievement: 98,
    points: 450

]

var student;
var message = [];
var search;

function print(message) 
document.getElementById('output').innerhtml = message;


function getStudentReport(student) 
var report = "<h3> Student: " + student.name + "</h3>"; 
report += "<p>Track: "+ student.track + "</p>";
report += "<p>achievement: "+ student.achievement + "</p>";
report += "<p>Points: "+ student.points + "</p>";
return report;


while(true) 
search = prompt("Search the student recoards: type a name [Jody] or (type quit to exit.)");
if (search == null || search.toLowerCase() == 'quit') 
    break;
 
for (var i = 0; i < students.length; i += 1) 
    student = students[i];
    if (student.name.toLowerCase() === search.toLowerCase()) 
        message.push(getStudentReport(student));
      

for (var j = 0; j < message.length; j += 1) 
        document.write(message[j]);
               

当提示函数运行时,如果我写 #Dave 消息数组存储 2 个值,因为在 #students 数组中,Dave 名称使用了两次。

但是当我通过打印函数打印这个数组时,它只打印最后一个值。但是当我通过 document.write 打印它时,它会打印 2 个值。

所以,现在我的问题是:如何使用 #print 函数打印存储在消息数组中的 2 个值?

【问题讨论】:

你不是在调用 print 你是在调用 document.write() 覆盖页面 @SterlingArcher 如果我写 print(message) 它不起作用 您可以在循环开始时清除output元素的内容,并将print改为使用document.getElementById('output').innerHTML += message + '&lt;br /&gt;'; 你在说什么print函数?您没有在代码中调用任何内容。 (console.log 也许?)。您可以添加输出示例吗? @TalSkverer 代码中有一个print 函数。 OP 是说,如果他使用它而不是 document.write,则该元素仅包含为其设置的最后一个值。 【参考方案1】:

当然,它只会添加最后一条消息,因为您使用的情感 = 将覆盖内容,因此使用 += 将新消息附加到旧内容中,例如:

function print(message) 
    document.getElementById('output').innerHTML += message;

希望这会有所帮助。

【讨论】:

以上是关于JavaScript - 当这些值相同时,如何使用 print 函数输出存储在数组中的 2 个值?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 函数 学习 3(转)

javascript中toString()方法的用法?

javascript中的"==="和"=="

R - 如何在NA中填写值,但仅当结束值与起始值相同时?

如何查询具有相同字段的两个表,仅当字段值相同时才返回id

如何在输入框中显示数组值