因此,我从 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 进行转换,但没有转换。
请帮忙。
尝试将数字转换为字符串,但它无法转换。
不要手动尝试格式化为 $x,xxx.xx 格式,而是使用内置函数。
定义格式选项,然后设置数字格式:
let n = 12000;
console.log( new Intl.NumberFormat('en-CA', {style: 'currency', currency: 'CAD'}).format(n));