javascript 将数组 1 中的字母替换为数组 2 中的数字并计算这些数字的总和

标签 javascript arrays

我有两个数组

数组号1:

let search  = ['ا', 'ب', 'ج', 'د', 'ه','و', 'ز', 'ح', 'ط', 'ي','ك', 'ل', 'م', 'ن', 'س','ع', 'ف', 'ص', 'ق', 'ر','ش', 'ت', 'ث', 'خ', 'ذ','ظ', 'ض', 'غ'];

数组号2:

let replace = ['1', '2', '3', '4', '5','6', '7', '8', '9', '10','20', '30', '40', '50', '60','70', '80', '90', '100', '200','300', '400', '500', '600', '700','800', '900', '1000'];

这是一个输入:

let word = "محمد";

我想在javascript中搜索变量word的字母,并将它们替换为replace数组中的等效数字。替换数组和搜索数组具有相同数量的字母和数字。

输出将是:

م 40
ح 8
م 40
د 4

total = 92

let word = "محمد";
let search = ['ا', 'ب', 'ج', 'د', 'ه', 'و', 'ز', 'ح', 'ط', 'ي', 'ك', 'ل', 'م', 'ن', 'س', 'ع', 'ف', 'ص', 'ق', 'ر', 'ش', 'ت', 'ث', 'خ', 'ذ', 'ظ', 'ض', 'غ'];
let replace = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000'];
if (word === "") {
  document.write('the field is empty');
} else {
  w = word.split("").filter(function(ele) {
    return ele.replace(search, replace);
  }).map(function(ele) {
    return ele + ele;
  });
}
console.log(w);

最佳答案

假设您的意思是预期结果是 92,您可以通过首先拆分输入,然后在 find 中查找项目的索引并使用 reduce 聚合结果来实现此目的> 从 replace 中查找值

let search  = ['ا', 'ب', 'ج', 'د', 'ه','و', 'ز', 'ح', 'ط', 'ي','ك', 'ل', 'م', 'ن', 'س','ع', 'ف', 'ص', 'ق', 'ر','ش', 'ت', 'ث', 'خ', 'ذ','ظ', 'ض', 'غ'];
let replace = ['1', '2', '3', '4', '5','6', '7', '8', '9', '10','20', '30', '40', '50', '60','70', '80', '90', '100', '200','300', '400', '500', '600', '700','800', '900', '1000'];

let word = "محمد";

let result = word.split("")
                .map(x => search.indexOf(x))
                .reduce( (acc,i) => acc + parseInt(replace[i],10),0);
console.log(result);

您可以通过在 replace 数组中存储整数来改进这一点,这将消除对 parseInt 的需要

关于javascript 将数组 1 中的字母替换为数组 2 中的数字并计算这些数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69256292/

相关文章:

java - 当存在非空连续元素时需要反转数组的逻辑

php - 在动态页面之间传递大字符串值的安全方法

javascript - 将 .txt 文件中的文本拉入 <input> 值 HTML

javascript - 如何在 Javascript 中使用提示在对象内添加属性?

javascript - jQuery 将值字符串转换为数组

arrays - 如何在AS3中制作2D矢量

javascript - OneDriveSDK 由于 OneDrive 上传 API 上的未知错误而失败

javascript - GLTF 加载程序试用版返回类型错误 : Failed to resolve module specifier "three". 相对引用必须以 "/"、 "./"或 "../"开头

javascript - Angular 2 模块导入

arrays - 按相同项目 Ruby 对数组中的子数组进行分组