javascript - 如何将输入框中的值添加到数组中,然后输出其内容?

标签 javascript html node.js express socket.io

如何将输入框的值添加到数组中,然后显示该数组的内容? 这就是我想到的,但我不确定为什么它不起作用 - console.log 也不向控制台发布任何内容。

var user = user;
if (!user) {
  user = prompt('Please choose a username:');
  if (!user) {
    alert('Your name has been set to "Anonymous"');
  } else {
      alert('Your name has been set to "'+ user +'"');
  }
}

var items = [];
function userArray() {
    items.push(user);
    return false;
    console.log(items);
    }

socket.on('onlineUsers', function (data) {
      $('.dispUser').html(items);
    });

文件中的其余代码如下,以防万一有帮助......(根据第一个答案更改了返回语句)

var user = user;
if (!user) {
  user = prompt('Please choose a username:');
  if (!user) {
    alert('Your name has been set to "Anonymous"');
  } else {
      alert('Your name has been set to "'+ user +'"');
  } 
}

var items = [];

function userArray() {
    items.push(users);
    console.log(items);
    return false;
    }

socket.on('onlineUsers', function (data) {
      $('.dispUser').html(items);
    });

//Counts the number of users online
socket.on('count', function (data) {
  $('.user-count').html(data);
});

//Receives messages and outputs it to the chat section
socket.on('message', function (data) {
  $('.chat').append('<p><strong>' + data.user + '</strong>: ' + data.message + '</p>');
  $('.chat').scrollTop($('.chat').height());
});


//SENDING OF THE MESSAGE
//Submit the form through HTTPS
$('form').submit(function (e) {
  e.preventDefault();

  // Retrieve the message from the user
  var message = $(e.target).find('input').val();

  // Send the message to the server
  socket.emit('message', {
    user: user || 'Anonymous',
    message: message
  });

  // Clears the message box after the message has been sent
  e.target.reset();
  $(e.target).find('input').focus();
});

最佳答案

回答

您的实现很好,但是有一个错误,导致它无法按照您所描述的方式工作。

console.log(items) 的调用不会打印任何内容,因为该行代码永远不会运行。

当您从函数返回时,后续代码行将不会运行。您应该return作为函数中的最后一行,或者将其包装在条件中。

例如:

function userArray() {
  items.push(user);
  console.log(items);
  return false;
}

如何调试

学习自己解决这个问题的技术是一个非常宝贵的工具。您可以利用调试器(例如 Chrome Devtools)向代码添加断点。这些将允许您停止特定行的执行、查看变量的值并单步执行剩余的代码行。

这样做可以清楚地看出该代码行从未运行。

在此处查找更多详细信息:https://developers.google.com/web/tools/chrome-devtools/javascript

关于javascript - 如何将输入框中的值添加到数组中,然后输出其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61449710/

相关文章:

html - 如何在 node.JS 中使用 phantomJs 将 html 内容呈现为 pdf 文件

node.js - 角度 cli 安装命令显示错误

javascript - NodeJS - 将相对路径转换为绝对路径

Javascript counter++ 跳过计数

javascript - 带有键事件处理程序的 Karma 单元测试 Angular Directive(指令)

javascript - JavaScript 中的变量和函数作用域

javascript - Codeigniter 表单验证

javascript - 如何在文本框中生成用户给定值的索引?

jquery - 通过 CSS 类淡出 "Hidden"的 HTML 元素

node.js - 我可以浏览 node.js 项目的本地 Google Datastore 模拟器数据吗?