in theory, enough to do everything you want.
No, not enough. There are always special cases that are not provided in the built-in tools.
Example: due to the absence of the reduce method with the help of each, you can select a part of the values that are suitable for the condition.
var positive = []; $('selector').each(function(i,el){ if(el.value > 0) positive.push({[i]:el}); });
Or another option is to perform an action with a third-party object.
$('span').each(function(i, el) { $('#res').append(el.innerHTML ? `~${el.innerHTML}~` : 'empty'); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <span>1</span> <span>2</span> <span></span> <span>4</span> <span></span> <div id="res"></div>
In addition, you should not forget that the each method can be applied not only to jQuery objects, but also to ordinary objects, replacing for..in and arrays, unifying access, regardless of the type of collection.
In addition, all of the listed methods use the each method within themselves.
map - stands somewhat apart from all of this, since it is not intended to perform some function on the elements of a collection, but to get a new collection based on a given one.