UPDATEперебрать массив вернуть имя массива
Существовал проблема с тестом Chai, что класс при условии. Спасибо всем за вашу помощь!
Я работаю над проблемой для класса. Он просит написать функцию «каждый». Он должен вызывать iterator (value, key, collection) для каждого элемента коллекции. Он должен перебирать массивы, обеспечивая доступ к самому элементу, индексу и массиву. Он также должен только перебирать элементы массива, а не свойства массива (другая проблема, которую я имею). Он также принимает как массивы, так и объекты.
На тесте я бегу (в нижней части), он должен вернуть:
['ant', 'a', animals],
['bat', 'b', animals],
['cat', 'c', animals]
Однако, она возвращается:
['ant', '0', Array[3] [0:"ant", 1:"bat", 2:"cat"]]
... и так далее в массиве ,
Как выполнить итерацию по массиву так, чтобы он возвращал имя списка, а не весь массив?
var testeach = function(collection, iterator) {
if (Array.isArray(collection)) {
var len = collection.length;
for (var i in collection)
iterator(collection[i], collection.indexOf(collection[i]), collection);
} else {
for (var key in collection)
if (collection.hasOwnProperty(key)) {
iterator(collection[key], key, collection);
}
}
};
var animals = ['ant', 'bat', 'cat'];
var iterationInputs = [];
testeach(animals, function(animal, index, list) {
iterationInputs.push([animal, index, list]);
});
console.log(iterationInputs);
Вот код теста, который использует Chai.
describe('each', function() {
it('should iterate over arrays, providing access to the element, index, and array itself', function() {
var animals = ['ant', 'bat', 'cat'];
var iterationInputs = [];
_.each(animals, function(animal, index, list) {
iterationInputs.push([animal, index, list]);
});
expect(iterationInputs).to.eql([
['ant', 0, animals],
['bat', 1, animals],
['cat', 2, animals]
]);
});
Убедитесь, что вы правильно читаете и понимаете проблему. Возможно, ваш перевод неверно. Слово «животные» не содержит строковых котировок вокруг него ... – Nate
Спасибо, Нейт. Я вытащил желаемый результат непосредственно из модульного теста. Он определенно хочет имя переменной входного массива. В этом примере представлены животные массива. –
Просьба представить код для теста, если вы хотите узнать, почему ваш код не прошел тест. –