我正在从类似JSON文件的产品列表中获取
产品。服务
getProducts(): Observable<Product[]>{
return this._http.get<Product[]>(this.configUrl);
}
products.component
getProducts(): void{
this.productsService.getProducts()
.subscribe(productList =>{
this.products = productList['products'];
} );
}
product.interface
export interface Product {
"quantity": number;
"price": number;
"available": boolean;
"sublevel_id": number;
"name": string;
"id": string;
}
Json示例
0:
available: false
id: "58b5a5b1b6b6c7aacc25b3fb"
name: "aute"
price: "$8,958"
quantity: 308
sublevel_id: 3
1:
available: true
id: "58b5a5b117bf36cf8aed54ab"
name: "mollit"
price: "$5,450"
quantity: 891
sublevel_id: 3
Price属性以字符串形式存储在json中,但我想将其作为数字存储在变量this.products
中,因为我将对其进行多次操作
最好的方法是什么?
答案 0 :(得分:1)
根据您的最后评论,这是您可以一次存储所需值的方法:
替换:
this.products = productList['products'];
具有:
this.products = productList['products']
.map(product => ({ ...product, price: Number(product.price.replace(/[^0-9.-]+/g,'')) }));
我使用this answer中给出的解决方案将货币值转换为浮点数,如注释中所述。
答案 1 :(得分:0)
以数字格式而不是字符串存储价格。
0:
available: false
id: "58b5a5b1b6b6c7aacc25b3fb"
name: "aute"
price: 8958
quantity: 308
sublevel_id: 3
1:
available: true
id: "58b5a5b117bf36cf8aed54ab"
name: "mollit"
price: 5450
quantity: 891
sublevel_id: 3