javascript - JavaScript:测试输入参数是否为数组;如果是,则将数组合并为一个大数组
问题描述
我有以下变量是数组:
const gumBrands = ['orbit', 'trident', 'chiclet', 'strident'];
const mintBrands = ['altoids', 'certs', 'breath savers', 'tic tac'];
下面我有以下使用变量作为输入参数的函数:
function shallowCopy (arrOne, arrTwo) {
if (arrOne.constructor === 'Array'){
return [...arrOne, ...arrTwo];
}
else {
console.log('test this');
}
}
shallowCopy(gumBrands, mintBrands)
我期待我的代码返回:
[ 'orbit',
'trident',
'chiclet',
'strident',
'altoids',
'certs',
'breath savers',
'tic tac' ]
相反,代码运行我的 else 语句并返回:test this
我究竟做错了什么?
解决方案
.constructor
不包含字符串"Array"
,而是对全局Array
对象的引用。
请注意,数组可以被子类化,并且它们.constructor
是不同的。您可能要考虑使用instanceof Array
.
推荐阅读
- python-3.x - 如何将 input() 更改为小写?
- spring-boot - 部署到tomcat后启动应用失败
- javascript - 如何在游戏开始前加载所有图像?(JavaScript,预加载器)
- javascript - 在 Firebase 实时数据库中查询 orderByChild 不起作用?
- java - 从不同时间的毫秒创建特定的日期对象
- r - 如何在r中动态访问变量名(动态创建变量名后)
- spring-boot - 弹簧靴执行器在本地工作但不在生产中(aws)
- javascript - 如何将输入字段中可以提交的内容限制为一组选项?
- sql - Web2py 数据库锁与一个大表
- java - 客户端服务不响应 SSL CertificateRequest