Home > front end >  JavaScript syntax declare object inside function
JavaScript syntax declare object inside function

Time:10-17

I wrote a code:

 const search = (what, arr) => arr.filter((el) => 
    (onde(what,el).tag).includes((onde(what,el).input)));

but it call function onde(), two times.

But it is not needed.

How to set part = onde(what,el);

inside const search ?

so it can be called one time only, as part.tag and part.input

   const search = (what, arr) => arr.filter((el) => 
(onde(what,el).tag).includes((onde(what,el).input)));
    
    function exibe(el, index, array) {console.log(index " = "   el.name  " "   el.value " "   el.other);}
    function onde(what,where) { array1=[]; tags =what.split(':')[0]; tag =tags.split(','); 
        tag.forEach(element => {  array1.push(where[element]);});
          array['tag']=array1.join(' ').toLowerCase();
          array['input']=what.split(':')[1].toLowerCase();
          return array;
        }
       
        var array = [
            { name:"string 1", value:"this A", other: "that 10" },
            { name:"string 2 this", value:"those B", other: "that 20" },
            { name:"string 3", value:"this C", other: "that 30" }
        ];
        const serached = search("name,value:this",array);
        if (serached) {
          serached.forEach(exibe);
        } else {
            console.log('No result found');
        }

CodePudding user response:

Save it in a variable first.

const search = (what, arr) => arr.filter((el) => {
    const { tag, input } = onde(what, el);
    return tag.includes(input);
});

or

const search = (what, arr) => arr.filter((el) => {
    const result = onde(what, el);
    return result.tag.includes(result.input);
});
  • Related