javascript - ESLint error use Object.keys instead of for..in -




i'm working on below code works fine. but, eslint suggest use object.keys instead of for..in loop. tried iterate keys, search if match found return object. works for..in not object.keys. tried replace foreach filter didn't work me. suggestions.

function searchobj (obj, query) {    // object.keys(obj).foreach(function(key){   (var key in obj) {     var value = obj[key];     if (typeof value === 'object') {        return searchobj(value, query);     }     if (typeof value === 'string' && value.tolowercase().indexof(query.tolowercase()) > -1) {        return obj;     }   } }  var demodata=[   {id:1,desc:{original:'trans1'},date:'2017-07-16'},   {id:2,desc:{original:'trans2'},date:'2017-07-12'},   {id:3,desc:{original:'trans3'},date:'2017-07-11'},   {id:4,desc:{original:'trans4'},date:'2017-07-15'} ];  var searchfilter = demodata.filter(function(obj){      return searchobj(obj, 'trans1'); }); console.log(searchfilter); 

here link js bin

since don't use found object fact there. use array.prototype.some avoid looping on every key in obj have found matches search query.

function searchobj (obj, query) {    return object.keys(obj).some(function(key) {      var value = obj[key];      if (typeof value === 'object') {         return searchobj(value, query);      }            return typeof value === 'string' && value.tolowercase().indexof(query.tolowercase()) > -1;    });  }    var demodata=[    {id:1,desc:{original:'trans1'},date:'2017-07-16'},    {id:2,desc:{original:'trans2'},date:'2017-07-12'},    {id:3,desc:{original:'trans3'},date:'2017-07-11'},    {id:4,desc:{original:'trans4'},date:'2017-07-15'}  ];    var searchfilter = demodata.filter(function(obj){       return searchobj(obj, 'trans1');  });  console.log(searchfilter);





wiki

Comments

Popular posts from this blog

Asterisk AGI Python Script to Dialplan does not work -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -

python - Read npy file directly from S3 StreamingBody -