【问题标题】:Remove Column name from array in JSON从 JSON 中的数组中删除列名
【发布时间】:2017-05-22 10:23:47
【问题描述】:

我在数组中得到这样的格式 这是我的数组=

  var array= [{"address":"Jaipur"},{"address":"Mumbai"},{"address":"Mumbai"}]

我想要这样的格式

var array= [

    "Jaipur",
    "Mumbai"
];

在 JSON 中应该做些什么,这样我才能得到想要的数组。

【问题讨论】:

    标签: javascript jquery arrays json


    【解决方案1】:

    您可以使用Set 获取唯一值,然后将spread 再次放入数组中。

    var array= [{"address":"Jaipur"},{"address":"Mumbai"},{"address":"Mumbai"}];
    
    var res = [...new Set(array.map(x => x.address))];
    
    console.log(res)

    【讨论】:

    • 太棒了。获得了新知识。+1
    • 请添加新Set的来源?
    • 太好了,你刚刚提出了这个问题
    • @lalithkumar MDN 有所有答案:Set(),您最有可能的下一个问题将是关于 Spread operator
    【解决方案2】:

    var array= [{"address":"Jaipur"},{"address":"Mumbai"},{"address":"Mumbai"}];
    var address=[];
    
    $.each(array,function(add,val){
    address.push(val.address);
    });
    var address = Array.from(new Set(address));
    console.log(address);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    【讨论】:

      【解决方案3】:

      你可以reduce数组:

      var array= [{"address":"Jaipur"},{"address":"Mumbai"},{"address":"Mumbai"}];
      
      var formatedArray = array.reduce((output, item) => {
        if(!output.includes(item.address)) {
          output.push(item.address)
        }
        return output
      }, [])
      
      console.log(formatedArray)

      【讨论】:

        【解决方案4】:
         string json = DataTableToJSON(dt_main); 
         jsonnew = @"{""Data"":" + json + "}";
        
        
        
        private static string DataTableToJSON(DataTable table)
        {
        
            List<string[]> result = table.Rows
         .Cast<DataRow>()
         .Select(row => row.ItemArray
             .Select(x => x.ToString())
             .ToArray())
         .ToList();
        
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize(result);
        
            //------another method----------------
            //ArrayList arr = new ArrayList(); 
            //List<ArrayList> list = new List<ArrayList>();
        
            //foreach (DataRow row in table.Rows)
            //{ 
            //    arr = new ArrayList();
            //    foreach (DataColumn col in table.Columns)
            //    { 
            //       arr.Insert(col.Ordinal, row[col]);
            //    }
        
            //     list.Add(arr); 
            //} 
        
           // JavaScriptSerializer serializer = new JavaScriptSerializer();
           // return serializer.Serialize(list);
        
        }
        

        【讨论】:

        • 这真的是 Javascript 吗?在我看来更像 Java。
        【解决方案5】:

        试试这个

        var array= [{"address":"Jaipur"},{"address":"Mumbai"},{"address":"Mumbai"}];
        var array_new=[];
        for(var i=0;i<array.length;i++){
            array_new.push(array[i].address);
        }
        

        【讨论】:

        • 是的,如果重复不是问题,那么这将起作用
        • 好吧,我猜你没有读过这个问题,因为如果你看这个例子,操作员想要删除重复。
        猜你喜欢
        • 2021-08-07
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多