【问题标题】:How to set up consition that all elements of one arrays must be equal to at least one element of the another array in JavaScript?如何在 JavaScript 中设置一个数组的所有元素必须等于另一个数组的至少一个元素的条件?
【发布时间】:2021-01-27 17:05:36
【问题描述】:

将罗马数字转换为数字!用户输入他的一个罗马号码,代码将他/她的罗马号码转换为经典号码。

var roman = prompt("Enter roman number", roman);
var romandigits = roman.toString().split(""); // spliting roman number entered into an array!
let romannumerals = ["M", "D", "C", "L", "X", "V", "I"];

现在假设设置的条件是: 数组 romandigits 的所有元素必须等于数组 romannumerals 的至少一个元素!

【问题讨论】:

标签: javascript arrays match


【解决方案1】:

您可以创建一组罗马数字

let numeralSet = new Set(romannumerals);

然后您可以检查每个数字是否在该集合中

let badDigits = romanDigits.filter((c) => !numeralSet.has(c))

然后检查是否有badDigits:

if (badDigits.length) {
    console.error(`Invalid roman number ${roman} contains non-digits ${badDigits}`);
}

所以把它们放在一起

let roman = prompt("Enter roman number");
let romandigits = [...roman];
let romannumerals = ["M", "D", "C", "L", "X", "V", "I"];
let numeralSet = new Set(romannumerals);
let badDigits = romandigits.filter((c) => !numeralSet.has(c))
if (badDigits.length) {
    console.error(`Invalid roman number ${roman} contains non-digits ${badDigits}`);
} else {
    console.log(`${roman} is OK`);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2018-07-28
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多