JavaScript - 所有数组方法均未捕获类型错误

标签 javascript

我是 javascript 新手,我正在编写一个非常简单的代码来练习数组。但我得到了 Uncaught TypeError: people.join is not a function 以及 people.reverse 和 people.sort 。为什么我收到此错误消息?我需要任何外部库来使用数组方法吗?

var name = ['Jeremy', 'Jeffrey'],
name2 = ["Jennifer", "Jackie"];

var people = name.concat(name2);

var joined = people.join(", ");
var reversed = people.reverse();
var sorted = people.sort();
alert(joined);

最佳答案

如果您在 Chrome 中测试它,一个问题是变量名称 name,在 chrome 中,在全局范围内,您分配给它的任何值,该值都会转换为字符串,因此名称将是 Jeremy,Jeffrey 而不是 ['Jeremy', 'Jeffrey']

这将导致 concat 进行字符串连接(people 的值将是 Jeremy,JeffreyJennifer,Jackie 作为字符串)并且people 的值将是 String 类型,而不是数组。

尝试将变量重命名为 name1name2

var name1 = ['Jeremy', 'Jeffrey'],
  name2 = ["Jennifer", "Jackie"];

var people = name1.concat(name2);

var joined = people.join(", ");
var reversed = people.reverse();
var sorted = people.sort();
alert(joined);

关于JavaScript - 所有数组方法均未捕获类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31822734/

相关文章:

javascript - 如何通过jquery获取最后一个标签测试

javascript - 选择日期时不会触发 React onBlur

javascript - 如何在 AngularJS 中设置 img 元素的边框样式

javascript - 如何区分单击提交按钮和在输入中输入以提交表单?

javascript - 在 React 中使用 Javascript/Jquery 生成关键帧

javascript - 我试图在单击另一个 div 后扩大 div 宽度

javascript - 将选择的值设置为该选择的第一个 child

javascript - 如何在 JavaScript 中显示用户时区的缩写名称(不是 GMT 偏移量)?

javascript - curl :如何修复 "Please turn JavaScript on and reload the page"

javascript - 了解 Marionette for Backbone.js 中的布局