为什么我不能在 JavaScript 中将这个 int 转换为 String?

问题描述 投票:0回答:1

因此,我从 mongoDB 中提取一组集合,集合中的一个文档网是一个以数字(int32)形式保存在数据库中的“价格”文档。

const hotAssets = await Asset.find({ hotAsset: true });

现在我将数组提供给一个函数,该函数将价格文档转换为字符串,并每 3 个数字添加逗号。奇怪的是,无论我做什么,文档网都不会转换。

函数调用

Utils.assetPriceToString(hotAssets);

功能

exports.assetPriceToString = (assetsArray) => {
  for (const asset of assetsArray) {
    if (asset.price) asset.price = asset.price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  }
};

集合示例

{
    location: {
      coordinates: [Array],
      title: 'Central Park Burgas',
      type: 'Point'
    },
    _id: new ObjectId('66420dbd1ada8e8e709e30a7'),
    id: 3698,
    name: 'new flat',
    slug: 'new-flat',
    price: 120000,
    project: 'Central Park Burgas',
    city: 'Burgas',
    type: 'דירה',
    sm: '82 מ"ר',
    oceanView: '',
    rooms: '2',
    bathrooms: 1,
    terraces: '1',
    floor: '18 מ 20',
    readiness: '',
    serviceTax: '',
    description: 'some descriptin', 
    year: 2008,
    mainImage: '/img/asset1.jpg',
    images: [
      '/img/asset1.jpg',  '/img/asset2.jpg',
      '/img/asset3.jpg',  '/img/asset4.jpg',
      '/img/asset5.jpg',  '/img/asset6.jpg',
      '/img/asset7.jpg',  '/img/asset8.jpg',
      '/img/asset9.jpg',  '/img/asset10.jpg',
      '/img/asset11.jpg', '/img/asset12.jpg',
      '/img/asset13.jpg', '/img/asset14.jpg',
      '/img/asset15.jpg', '/img/asset16.jpg',
      '/img/asset17.jpg', '/img/asset18.jpg',
      '/img/asset19.jpg', '/img/asset20.jpg',
      '/img/asset21.jpg', '/img/asset22.jpg',
      '/img/asset23.jpg'
    ],
    hotAsset: true,
    updated_at: 2024-05-13T12:55:24.545Z,
    __v: 0,
    priceNis: 482027
  }

我尝试用具有“价格”变量的对象对另一个数组进行硬编码,效果很好。

我尝试使用 asset.price = String(asset.price) 或 asset.price = '' + asset.price 进行转换,但没有转换。

请帮忙。

尝试将数字转换为字符串,但它无法转换。

javascript mongodb integer numbers tostring
1个回答
0
投票

不要手动尝试格式化为 $x,xxx.xx 格式,而是使用内置函数。

定义格式选项,然后设置数字格式:

let n = 12000;
console.log( new Intl.NumberFormat('en-CA', {style: 'currency', currency: 'CAD'}).format(n));

© www.soinside.com 2019 - 2024. All rights reserved.