【问题标题】:Using a loop to improve jquery code使用循环改进 jquery 代码
【发布时间】:2017-08-17 20:30:24
【问题描述】:

如何使用循环来改进这个 jquery 代码?

$.getJSON("@Url.Action("GetPainel", "Home")", {}, function(data) {
  var json = data;
  var PieData = [{
    value: data[0].value,
    color: data[0].color,
    highlight: data[0].highlight,
    label: data[0].label
  },{
    value: data[1].value,
    color: data[1].color,
    highlight: data[1].highlight,
    label: data[1].label
  }];

【问题讨论】:

    标签: jquery loops getjson


    【解决方案1】:

    您不需要循环**,您可以使用 map() 从您的 AJAX 请求中检索到的对象构建一个新的对象数组:

    $.getJSON("@Url.Action("GetPainel", "Home")", function(data) {
      var pieData = data.map(function(o) {
        return {
          value: o.value,
          color: o.color,
          highlight: o.highlight,
          label: o.label
        }
      }
    
      // work with pieData here...
    });
    

    ** 我的意思是 显式 循环。我意识到map() 在内部循环。

    【讨论】:

    • 优雅高效的解决方案。荣誉。
    • 如果每个元素只有 4 个键并且他试图将其复制过来,那么映射 data 会有点傻......
    • @KarelG 我同意,尽管我让 OP 怀疑如果可以转置现有数组,他们就不会问这个问题
    • 非常简单。谢谢。
    【解决方案2】:

    你可以这样做

     $.getJSON("@Url.Action("GetPainel", "Home")", {}, function (data) {
        var PieData=[];
        data.forEach(function(entry){
            PieData.push({
              value:entry.value,
              color:entry.color,
              highlight:entry.highlight,
              label:entry.label
           });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2020-11-11
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      相关资源
      最近更新 更多