Стрелочная функция. Array.some, Array.forEach

Tarasov, Basic JS

by shurikation

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script>
  'use strict'
  // https://www.youtube.com/watch?v=bqeb-j4_F3M&feature=youtu.be
  //Сделать функцию, которй мы передадим массив и элемент. Она будет проверять есть ли такой элемент в массиве
  
  
  const arr = [1, 5, 18, 25];
 
  const val1 = 5; 
  const val2 = 500;
  
  console.log(some(arr, val1)); // true
  console.log(some(arr, val2)); // false
  
 //some ищет элемент. Мы делаем как бы перебор массива.Тот же some, но циклом:
  function some (arr, element) {
   for (const arrElem of arr) {
    if(arrElem === element) {
    	return true;
    }
   }
   return false;
  }
  
/***** С объектами все сложнее, чем с числами.*****/
  const arr2 = [
  {x: 5, y: 5},
  {x: 2, y: 6},
  {x: 0, y: 10},
  ];
  
 const val3 = {x: 2, y: 6};
 const val4 = {x: 13, y: 13};
  
 console.log(some(arr, val3)); // false
 console.log(some(arr, val4)); // false
 
 //Везде false. Потому что объекты сравниваются по ссылке. Два объекта никогда не будут равны друг другу т.к. занимают разные ячейки в памяти. Как сравнивать? Можно так:
 
 val3.x === val4.x && val3.y === val4.y //сравниваем все свойства объекта по отдельности, но это неудобно. А вдруг объекты другие, или опять будут работать с числами. Что делать?
 
 
 function compare(arrayPoint) {
 	return arrayPoint.x === val3.x && arrayPoint.y === val3.y;
 }

 //Вносим изменения в функцию some. Теперь она ищет хотя бы один элемент, удовлетворяющий условию функции compare
  function some2 (arr2, compare) {
   for (const arrElem of arr2) {
    if(compare(arrElem)) { //!!Здесь мы ЗАПУСКАЕМ функцию compare
    	return true;
    }
   } 
  return false;
  }
   
 console.log('Функция compare выдала: ' + some2(arr2, compare)); //!!Здесь мы ПЕРЕДАЕМ функцию compare в some2, ну и запускаем some2 естестна
  
  //Круто, но это тоже неудобно. Удобнее сделать стрелочную функцию:
  console.log('Стерлочная функция выдала:' + some2(arr2,...