JSFiddle - React, Tailwind, and code Playground
by Dmitry Kostenko
JavaScript
/*
1. Читаем:
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
*( для желающих ) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
2. Пишем свои, не использующие внутри вышеуказанные ф-ции, аналоги, с единственным отличием: если нативный, к примеру, forEach используется
arr.forEach( fn ), то вы пишете function forEach( arr, fn ){}. Тоесть все ваши аналоги будут иметь на один аргумент больше( первый аргумент arr )
*/
/******************************************************************************/
var arr = [4, 5, 10];
function forEach( arr, fn ){
for (let i = 0; i < arr.length; i++) {
fn(arr[i], arr, i);
}
}
//forEach( arr, multiplies)
/******************************************************************************/
function map( arr, fn ){
var array = [];
for (let i = 0; i < arr.length; i++) {
array[i] = fn(arr[i], i, arr);
console.log(array[i])
}
console.log(array)
return array
}
map( arr, function(item, i){
if(i%2 === 0) {
return item*2
}
return item
})
/******************************************************************************/
function find(arr, func){
for (let i = 0; i < arr.length; i++) {
if (func(arr[i],i,arr) === true)
return arr[i];
}
};
function more8(item) {
return item>8;
}
//find(arr, more8)
function filter (arr, func) {
if ( typeof func !== "function" ) return [];
if( !Array.isArray( arr ) ){
return [];
}
var newArr = [];
for(var i = 0; i<arr.length;i++) {
if (func(arr[i], i, arr)===true) {
newArr.push(arr[i]);
}
}
return newArr;
}
filter(arr, function (item, i) {
return item%2 === 0;
});
//console.log(filter(arr,function(item,i) {return (item%2 === 0);}))
function...