|
Логика в JS, не понимаю
Я вот не могу понять эту логику.
Сразу скажу код работает как должен но я просто не могу понять как. const a = [1, 2, 3] const b = [1, 2, 3] const c = [2, 1, 3] const areArraysEqual = (firstArray, secondArray) => { if(firstArray.every((el, ind) => el === secondArray[ind]) ){ return true } return false } console.log(areArraysEqual(a, b)) // true console.log(areArraysEqual(a, c)) // false Есть два массива я хочу проверить совпадают ли там элементы. И для этого создаю проверку с помощью метода every где есть два параметра элемента и индекса. Происходит следующее что берется элемент первого массива и сравнивается с элементом второго массива исходя из номера его индекса. И все работает. Но в моей логике что я взял первый элемент он 1 а индекс второго массива 0 То есть почему идет сравнение элементов если я написал элемент у первого массива а у второго написал индекс, там же разные значения. |
Цитата:
alert(1 === 1) что не так? |
рони,
тут просто тип данных сравнен а в моем примере сравниваются два массива const a = [1, 2, 3] где 1, 2, 3 это элементы у которых индекс 0 1 2 я вижу это сравнение так 1 !== 0 true |
Сергей Ракипов,
вы когда обратились к массиву по индексу, то получили элемент. (el, ind) => el === secondArray[ind]) el это firstArray[ind] или (a[0], 0) => a[0] === b[0] или (1, 0) => 1 === 1 |
рони,
вот это что вы написали (a[0], 0) как я понял а это массив [0] это индекс массив а через запятую 0 это что? |
Сергей Ракипов,
(элемент_массива_под_индекс ом_таким-то, индекс_такой_то) |
Сергей Ракипов,
есть два дома , есть номера квартир, есть жильцы этих квартир, никто жильца не сравнивает с номером его квартиры, сравнивают жильцов по номеру. в первом доме, в нулевой комнате живёт единица и во втором доме, в нулевой комнате тоже живёт единица. |
Сергей Ракипов,
(el, ind) => el === secondArray[ind]) (firstArray[ind] , ind) => firstArray[ind] === secondArray[ind]) (a[0], 0) => a[0] === b[0] (1, 0) => 1 === 1 все эти строки это одно и тоже для первого шага перебора элементов массива |
Я вот сколько лет возвращаясь вновь и вновь освоить JS иногда думаю это не моё.
Я вот так думаю дом это массив a[1, 2, 3] номера квартир это а[0 1 2] (то есть индекс для меня номер квартир) (далее я назову это ind) а жильцы это a[1, 2, 3] (элементы этого массива, то есть они могут быть числа, строки, переменные и т.д.) (далее я назову это el) И когда мне говорят сравни жильцов двух домов и если они одинаковые выведи тру a[1, 2, 3] в[1, 2, 3] я беру метод every который мне скажет номера домов и кто в них живет (это в параметрах el жилец и ind квартира), то есть индекс 0 1 3 это квартиры и в них живут жильцы 1,2,3 соответственно И вот из первого дома я имею жильца 1 А из второго дома я беру номер квартиры И мне говорят это одинаково или тру А у меня не доумение ну как же так это же вообще нельзя сравнивать. |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 01:44. |
|