Разница между include и hasOwnProperty в поиске по массиву в JS - PullRequest
0 голосов
/ 17 октября 2018

В чем разница между includes и hasOwnProperty для поиска элемента в Array в JS с точки зрения сложности времени и пространства?

И то, и другое можно использовать, чтобы найти, существует ли элементв Array или нет.

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Оба могут использоваться, чтобы определить, существует ли элемент в массиве или нет.

Неверно.includes проверяет, соответствует ли какой-либо из элементов в массиве аргументу.hasOwnProperty проверяет, есть ли у массива свойство , соответствующее аргументу

$ const array = ['test', 'another'];
$ array.includes('test')
true
$ array.hasOwnProperty('test')
false
$ array.includes('length')
false
$ array.hasOwnProperty('length')
true

. Вы можете видеть, что includes и hasOwnProperty не возвращают одинаковый результат, поэтомусравнивать эффективность бессмысленно.

0 голосов
/ 07 июня 2019

hasOwnProperty возвращает логическое значение, указывающее, имеет ли объект, для которого вы его вызываете, свойство с именем аргумента и как у всех. Метод includes() определяет, содержит ли строка символы указанной строки.Метод include возвращает true, если строка содержит символы, и false, если нет.Кроме того, он чувствителен к регистру.

и в конце я думаю, что вопрос основан на ложном предположении.

0 голосов
/ 17 октября 2018

includes проверяет, содержит ли ваш массив указанное значение, а hasOwnProperty проверяет, имеет ли ваш массив указанное имя свойства в его __proto __:

const arr = [1, 2, 3];
arr.prop = 'Some prop';

arr.includes(2); // -> true
arr.hasOwnProperty(2); // -> false
arr.includes('prop'); // -> false
arr.hasOwnProperty('prop'); // -> true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...