Я должен пройти тест по этой строке кода и после прочтения различных постов о том, чтобы убедиться, что я выполняю итерацию массива, а не перечислять, чтобы попытаться избежать возможных сложностей с цепочкой прототипов и т. Д. (Если честно, я не понимаю все как бы там ни было).
У меня есть два фрагмента кода, которые, кажется, делают одно и то же, только один перечисляет, а другой итерирует. Тем не менее, часть, которая заставляет меня выдергивать волосы, состоит в том, что если я перечисляю, то я прохожу все тесты, но если я повторяю, тогда я не делаю, я проваливаю часть, которая говорит: «следует скопировать свойства из источника в место назначения»
Вот итерация:
function copy(destination, source){
var index;
for (index = 0; index <= source.length; index++) {
if (source.propertyIsEnumerable(index) && destination[index] === undefined) {
destination[index] = source[index];
}
}
return destination;
Я передаю второй аргумент в функции с именем «source» первой функции с именем «destination».
теперь, когда я добавляю код перечисления, я прохожу все тесты:
function copy(destination, source){
var index;
for (var index in source) {
if (source.propertyIsEnumerable(index) && destination[index] === undefined)
destination[index] = source[index];
}
return destination;
};
Теперь я полагаю, что они делают то же самое, однако может показаться, что это не так?