如何从JavaScript中的JSON数组中删除双引号

时间:2018-06-25 16:57:41

标签: javascript

我有一个数组:

Var array=[{"name":"May","data1":"1121.0"}]

我想将其更改为:

Var array= [{"name":"May","data1":1121.0}]

4 个答案:

答案 0 :(得分:0)

貌似已经在here

之前得到了答复

我会总结;

for(var i = 0; i < objects.length; i++){
    var obj = objects[i];
    for(var prop in obj){
        if(obj.hasOwnProperty(prop) && obj[prop] !== null && !isNaN(obj[prop])){
            obj[prop] = +obj[prop];   
        }
    }
}

console.log(JSON.stringify(objects, null, 2));

这确实有一个错误,其中0变为空。

答案 1 :(得分:0)

您要将映射到"data1"键的值转换为number而不是string

有很多方法可以用JavaScript来完成,但是最好的方法是像这样使用Number.parseFloat

var array = [{"name":"May","data1":"1121.0"}];
array[0]["data1"] = Number.parseFloat(array[0]["data1"]);

console.log(array[0]["data1"]); // 1121

如果您需要对array内的多个对象执行此操作,则可以

var array = [{"name":"May","data1":"1121.0"}, {"name":"May","data1":"1532.0"}, etc.] // Note that this is not valid JavaScript
array.map(obj => {obj["data1"] = Number.parseFloat(obj["data1"]); return obj;});

答案 2 :(得分:0)

如果我理解得很好,您只想将data1的值从"1121.0"转换为1121.0,换句话说就是将 string 转换为数字

要仅转换该键(数据1),您仅需要以下内容:

array[0].data1 = parseFloat(array[0].data1)

如果这不是您想要的,请更好地解释您的问题

答案 3 :(得分:0)

您可以简单地使用<gridster [options]="options" [style.background-color]="allowEdit?'white':'white'"> <gridster-item [item]="item" *ngFor="let item of widgets; let i = index;" class="sortable-handler"> <div [ngClass]="{'add-widget': item.addNew}"> <div class="row gridster-item-header"> <div class="col-12 gridster-item-label"> <span>{{item.name}}</span> <div class="gridster-item-button" *ngIf="!item.addNew && allowEdit"> <button (touchstart)="customizeWidget(item)" (mousedown)="customizeWidget(item)" class="btn btn-secondary"> <span class="fa action-button-sm action-button-customize-item"></span> </button> <button (touchend)="deleteWidget(item.id, i)" (mousedown)="deleteWidget(item.id, i)" class="btn btn-secondary"> <span class="fa action-button-sm action-button-delete-item"></span> </button> </div> </div> </div> <img *ngIf="!item.addNew" class="image-height" [src]="item.label" alt="item-label"/> <div *ngIf="item.addNew" style="background-image: {{item.label}}"> <app-add-widget-item (touchstart)="openWidgetModal($event)" (mousedown)="openWidgetModal($event)"></app-add-widget-item> </div> </div> </gridster-item> </gridster> 进行检查,并尝试使用Number.isNaN运算符将其强制转换为数字。如果返回true,则什么也不做。如果为假,则将参数的值更改为强制转换数字。

+