KOSASIH / SilkRoad

Prefer that for-in loops should include an if statement JS-0051
Anti-pattern
Minor
8 months agoa year old
Wrap the body of a for-in loop in an if statement with a hasOwnProperty guard
 957      delete attrs['aria-selected'];
 958    }
 959
 960    for (var attr in attrs) { 961      var val = attrs[attr]; 962 963      option.setAttribute(attr, val); 964    } 965
 966    if (data.children) {
 967      var $option = $(option);
Wrap the body of a for-in loop in an if statement with a hasOwnProperty guard
 658  };
 659
 660  Utils._convertData = function (data) {
 661    for (var originalKey in data) { 662      var keys = originalKey.split('-'); 663 664      var dataLevel = data; 665 666      if (keys.length === 1) { 667        continue; 668      } 669 670      for (var k = 0; k < keys.length; k++) { 671        var key = keys[k]; 672 673        // Lowercase the first letter 674        // By default, dash-separated becomes camelCase 675        key = key.substring(0, 1).toLowerCase() + key.substring(1); 676 677        if (!(key in dataLevel)) { 678          dataLevel[key] = {}; 679        } 680 681        if (k == keys.length - 1) { 682          dataLevel[key] = data[originalKey]; 683        } 684 685        dataLevel = dataLevel[key]; 686      } 687 688      delete data[originalKey]; 689    } 690
 691    return data;
 692  };
Wrap the body of a for-in loop in an if statement with a hasOwnProperty guard
 510
 511    var methods = [];
 512
 513    for (var methodName in proto) { 514      var m = proto[methodName]; 515 516      if (typeof m !== 'function') { 517        continue; 518      } 519 520      if (methodName === 'constructor') { 521        continue; 522      } 523 524      methods.push(methodName); 525    } 526
 527    return methods;
 528  }
Wrap the body of a for-in loop in an if statement with a hasOwnProperty guard
 957      delete attrs['aria-selected'];
 958    }
 959
 960    for (var attr in attrs) { 961      var val = attrs[attr]; 962 963      option.setAttribute(attr, val); 964    } 965
 966    if (data.children) {
 967      var $option = $(option);
Wrap the body of a for-in loop in an if statement with a hasOwnProperty guard
 658  };
 659
 660  Utils._convertData = function (data) {
 661    for (var originalKey in data) { 662      var keys = originalKey.split('-'); 663 664      var dataLevel = data; 665 666      if (keys.length === 1) { 667        continue; 668      } 669 670      for (var k = 0; k < keys.length; k++) { 671        var key = keys[k]; 672 673        // Lowercase the first letter 674        // By default, dash-separated becomes camelCase 675        key = key.substring(0, 1).toLowerCase() + key.substring(1); 676 677        if (!(key in dataLevel)) { 678          dataLevel[key] = {}; 679        } 680 681        if (k == keys.length - 1) { 682          dataLevel[key] = data[originalKey]; 683        } 684 685        dataLevel = dataLevel[key]; 686      } 687 688      delete data[originalKey]; 689    } 690
 691    return data;
 692  };