Javascript 转换印度教–;阿拉伯数字到英文数字

Javascript 转换印度教–;阿拉伯数字到英文数字,javascript,arrays,ecmascript-6,data-conversion,template-strings,Javascript,Arrays,Ecmascript 6,Data Conversion,Template Strings,在数组中有一个非英文的数字作为字符串,我想把它转换成英文并放到逻辑中,然后对每个div执行模板字符串操作 这是我的代码示例 const bigdata = [{img:'http://anything/com/123.png',title:'डेंजर ऑफर', inv:'१७५०'}] //Here १७५० = 1750 NOTE: I have multiple objects like this in my code let template=''; bigdata.forEach(

在数组中有一个非英文的数字作为字符串,我想把它转换成英文并放到逻辑中,然后对每个div执行模板字符串操作

这是我的代码示例

const bigdata = [{img:'http://anything/com/123.png',title:'डेंजर ऑफर', inv:'१७५०'}] //Here १७५० = 1750 NOTE: I have multiple objects like this in my code

let template='';
bigdata.forEach(offers => {
function offer_tag(){
    if((HERE I WANT CONVERTED NUMBER)<15000){
       return `<span class="badge badge-warning">नवीन</span>`
    }
}

//This offer tag will be used in template string
constbigdata=[{img:'http://anything/com/123.png“,标题:”डेंजर ऑफर', 投资部:'१७५०'}] //在这里१७५० = 1750注:我的代码中有多个类似的对象
让模板=“”;
bigdata.forEach(提供=>{
函数offer_tag(){

如果((这里我要转换的数字)您可以使用转换的属性生成新对象,如果可能的话

函数替换数字(输入){
变量数={'०': '0', '१': '1', '२': '2', '३': '3', '४': '4', '५': '5', '६': '6', '७': '7', '८': '8', '९': '9' };
返回数组.from(输入,c=>numbers[c]| | c).join(“”);
}
常数
bigdata=[{img:'http://anything/com/123.png“,标题:”डेंजर ऑफर', 投资部:'१७५०'}],
converted=bigdata.map(o=>Object.assign(…Object.entries(o.map)([k,v])=>({[k]:replaceNumber(v)})))

console.log(已转换);
您的代码已经非常接近。请尝试:

函数parseIntHindi(文本,基数){
变量数={'०': 0, '१': 1, '२': 2, '३': 3, '४': 4, '५': 5, '६': 6, '७': 7, '८': 8, '९': 9 };
函数替换数字(输入){
var输出=[];
对于(变量i=0;iconsole.log(parseIntHindi(“१७५०“”+1);
这个问题是关于转换一个数字,还是关于在转换为数字后迭代一个对象数组并应用一些逻辑?在第二种情况下,结果应该是什么?请添加一些HTML部分来说明问题。通常,您可以使用
if(+replaceNumbers(offers.inv)<15000){
,但是,有几个问题。首先,给定的代码看起来很奇怪,为什么要在
forEach
的arrow函数中声明一个函数(没有给出剩余的代码或关闭的
}
,所以我说不出来)?其次,
replaceNumbers
如果字符串包含非数字符号(例如
),则简单地进行替换,并且没有错误处理१७你好५०“
。最后但最不重要的一点是,
replaceNumbers
比使用
const replaceNumbers=s=>s.replace编写要短得多(/[०१२३४५६७८९]/g、 m=>numbers[m]);
。我认为这很好,但我也认为原始问题需要数字的“整数”版本,而不仅仅是翻译的字符串。我认为您只需将当前结果传递给
parseInt()
。如果您更新您的答案,我的答案将是多余的。
    var numbers = {
      '०': 0,
      '१': 1,
      '२': 2,
      '३': 3,
      '४': 4,
      '५': 5,
      '६': 6,
      '७': 7,
      '८': 8,
      '९': 9
    };

    function replaceNumbers(input) {
      var output = [];
      for (var i = 0; i < input.length; ++i) {
        if (numbers.hasOwnProperty(input[i])) {
          output.push(numbers[input[i]]);
        } else {
          output.push(input[i]);
        }
      }
      return output.join('');
    }

    document.getElementById('r').textContent = replaceNumbers('१७५०');