Angular 4 - 替换 ArrayList 的键值



我有以下json数据,这些数据被读入arrayList并保存在本地存储中:

[
{
"id": 1,
"name": "Albany",
"manufacture": "Albany Superior Low Gi Sliced Brown Seed Bread 700g",
"price": 15.49,
"category": "Food",
"type": "Breads",
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgA..."
},
{
"id": 2,
"name": "Blue Ribbon",
"manufacture": "Blue Ribbon Brown Plus Low Gi Bread 700g",
"price": 13.99,
"category": "Food",
"type": "Breads",
"image": "data:image/octet-stream;base64,/9j/4AAQSkZJRgABA..."
},
{...},
{...},
...
]

然后,我编写了一个类,该类将从本地存储中检索这些数据,我针对特定产品类型对其进行了筛选。类如下:

export class MilkCreamComponent implements OnInit {
allProducts: Array<Product> = [];
quantity: number = 1;
resultArray:any;
milkProducts =[]
newMilkProducts = [];
constructor( private prod: ProductService, public _DomSanitizer: DomSanitizer) { }
ngOnInit() {
this.allProducts = JSON.parse(localStorage.getItem('product-data') );
//console.log( JSON.stringify( this.allProducts ) );
var productMilk = this.allProducts.filter(item => item.type === 'Milk');
this.milkProducts = productMilk;
//console.log( this.milkProducts );
for (var i=0; i < this.milkProducts.length / 4; i++) {
var imageString = this.milkProducts[i].image;
var edittedImageString = imageString.substring(imageString.indexOf(",") + 1 );
var newImageStringFormat = "data:image/jpeg;base64," + edittedImageString;
if ( edittedImageString ===  this.milkProducts[i].image.substring(this.milkProducts[i].image.indexOf(",") + 1) ){
var index = this.milkProducts.indexOf( this.milkProducts[i] );
if (index !== -1) {
this.milkProducts.indexOf[index] =  this.milkProducts[i].id, this.milkProducts[i].name, this.milkProducts[i].manufacture,
this.milkProducts[i].price, this.milkProducts[i].category, this.milkProducts[i].type, newImageStringFormat;
console.log (  this.milkProducts );
}
}
else{
console.log("Images Are Not EqualnSee milk-cream.component.tsnSee Image Conversion Codes");
}
}
//console.log( this.newMilkProducts );
}
}
interface Product {
id: number;
name: string;
manufacture: string;
price: number;
category: string;
type: string;
image: string;
}

我想做的是替换键的特定值,然后控制台记录该 arrayList。

试试这个:

this.allProducts = JSON.parse(localStorage.getItem('product-data'));
this.allProducts.forEach(function(item) {
if (item.type === "Milk") {
var edittedImageString = item.image.substring(item.image.indexOf(",") + 1 );
item.image = "data:image/jpeg;base64," + edittedImageString;
}
});

最新更新