I can not get around JSHint's error message. Here is the loop I am using:
for (i = 0; i < Collection.length; i += 4) { data.push({ items : Collection.slice(i, i + 4).map(function(item) { return { id: item[0], title: item[1], }; }) }); }
Accepted Answer "function" as a keyword is only used for defining functions, and cannot be used inside a loop (or inside an "if" or "switch" or other control statement.) The only kinds of functions that can be defined within loops are anonymous functions.
A function is just a set of instructions, so you could, theoretically, take any function's instructions and put them directly inside the loop, and you have essentially the same thing.
You can just move the function outside the loop and pass a reference to it to map
:
function mapCallback(item) { return { id : item[0], title : item[1], }; } for (i = 0; i < Collection.length; i += 4) { data.push({ items: Collection.slice(i, i + 4).map(mapCallback) }); }
Alternatively, you can use a JSHint directive to ignore function expressions inside loops. Just put this at the top of the file in question:
/*jshint loopfunc: true */
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With