javascript - 如何正确地将数组推送到另一个数组?

标签 javascript jquery arrays

当我运行以下命令时:

var months = new Set(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
var string = "27 - 28 August 663 CE";
var words = string.split(" ");
for (var i = 0; i < words.length - 1; i++) {
    words[i] += " ";
}
var array = words;
array = $.map(array, function(value){
  return value.replace(/ /g, '');
});
const dates = {
    days : [], 
    months : [],
    years : [],
    suffixes : []
}
for (const word of words) {
    if (months.has(word)) {
        dates.months.push(word);
    } else if (+word < 32) {
        dates.days.push(+word);
    } else if (+word < 2200) {
        dates.years.push(+word);
    } else if (/\w+/.test(word)) {
        dates.suffixes.push(word);
    }
}

console.log(array);
console.log(dates);

输出不正确:

Object {days: Array(2), months: Array(0), years: Array(1), suffixes: Array(2)}

如果我运行:

var months = new Set(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
var words = ["27","-","28","August","663","CE"];
const dates = {
    days : [], 
    months : [],
    years : [],
    suffixes : []
}
for (const word of words) {
    if (months.has(word)) {
        dates.months.push(word);
    } else if (+word < 32) {
        dates.days.push(+word);
    } else if (+word < 2200) {
        dates.years.push(+word);
    } else if (/\w+/.test(word)) {
        dates.suffixes.push(word);
    }
}

console.log(dates);

输出是正确的:

Object {days: Array(2), months: Array(1), years: Array(1), suffixes: Array(1)}

jsFiddle

最佳答案

因为您在第一段代码中添加了一个完全没有必要的空格:

words[i] += " ";

原因

"january "

在数组(或集合)中找不到,因为它只包含:

"january"

关于javascript - 如何正确地将数组推送到另一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437081/

相关文章:

javascript - 在鼠标悬停时为另一个 div 上的按钮更改图像

jQuery-UI 可拖动容器行为异常

javascript - 全局变量不显示在div中

javascript - 如何在范围变量angularjs中获取json数据

arrays - 任意 365 天期间的总和值

javascript - 如何使用此脚本将 url 转换为超链接?

javascript - 如果没有使用 AngularFire 2 登录,则重定向到登录页面

javascript - 在 Sequelize Model 类中键入属性

jquery - 如何在最后一个 <div> 上添加 “fit” 类

java - 在 JFrame 中创建 GUI 以进行冒泡、插入和快速排序,并将代码添加到执行的操作中