【问题标题】:How to remove the element in dimensional array in javascript如何在javascript中删除维度数组中的元素
【发布时间】:2018-05-07 19:45:27
【问题描述】:
{"success":true,
"alldata": [
    {"name":"a","location":"market","age":12,"hobby":"singing","point":99.83},
    {"name":"b","location":"home","age":23,"hobby":"football","point":99.98},
    {"name":"c","location":"drugstore","age":17,"hobby":"game","point":99.99},
    ........ ,
    {"name":"z","location":"school","age":15,"hobby":"piano","point":100}
    ]
}

以上数据来自一个网站

我希望它在谷歌电子表格中解析

var url = "website address"

function getdata() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.getRange('A1').setValue('fetching...'); 

    try { 
    var response = UrlFetchApp.fetch(url); 
    var json = JSON.parse(response.getContentText()); 
    var data = {}; 

        if (json && json.alldata) { 
            json.alldata.forEach(function(elem) { 
            data[elem.name] = elem}); 
            } 


        sheet.getRange('A1').setValue('success'); 
        sheet.getRange('B1').setValue(JSON.stringify(data)); 
        }
        catch(ex) {sheet.getRange('A1').setValue('error');} 
        } 

到此为止我成功了

但是网站上的“alldata”太大了

我在工作表上收到一条错误消息

"You entered more than 50,000 characters in a single cell."

所以,我想删除“位置”和“点”

但我不知道该怎么做

delete json.alldata["location"]

我试过了,但没用

for(var i = 0; i<json.alldata.length;i++){
    if(json.alldata[i][1] == "location"){
    json.alldata[i].splice(1.1);
    }
{

我也试过了,没用

我该怎么做?请帮忙.. 谢谢

【问题讨论】:

    标签: javascript arrays json multidimensional-array splice


    【解决方案1】:

    最实用且最简洁的方法是

    var newdata = json.alldata.map((obj)=>{delete obj.location; return obj})
    

    【讨论】:

    • 我应该在哪里添加这段代码?我收到“语法错误”。
    • 抱歉,忘记归还物品。
    • 没关系。我也犯了一个错误:)但仍然是语法错误... :(
    • "functional" 不包括数据突变,这可能有效,但使用.map 肯定不会使其功能化
    • 由于没有克隆对象,是的,你是对的。数据发生变异,无法正常工作。
    【解决方案2】:

    您可以使用 Objectif.assign 创建一个包含您想要的值的新对象,看看Object.assign documentation here

    【讨论】:

      【解决方案3】:
      for(var i = 0; i<json.alldata.length;i++){
          delete json.alldata[i]["location"];
      }
      

      应该可以。

      【讨论】:

      • 哇现在它工作了!也许我在语法上犯了任何错误!非常感谢!!!!
      猜你喜欢
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2015-10-28
      • 2015-05-26
      • 2016-08-11
      • 1970-01-01
      相关资源
      最近更新 更多