Почему t
становится undefined
во второй итерации?
function findShortest(s){
const arr = s.split(' ');
arr.reduce(([acc, t], curr, idx) => {
console.log('t', t)
if (curr.length < t.length) {
// some code
t = curr;
} else {
// some code
}
return acc;
}, [[], '']);
return arr;
}
console.log(findShortest('how are you doing this wonderfull coding man'));
Я пытаюсь отфильтровать самые короткие слова из массива за одну итерацию, поэтому мне не нужно зацикливать массив, чтобы получить самое короткое слово, а затем снова отфильтровать его.Вы можете увидеть, что было моей первой попыткой.Я в конечном итоге с этим:
const arr = s.split(' ');
let shortest = 50;
return arr.reduce((acc, curr) => {
if (curr.length < shortest) {
acc = [];
acc.push(curr);
shortest = curr.length;
} else if (curr.length === shortest) {
acc.push(curr);
}
return acc;
}, []);
Но почему при первом подходе t
становится неопределенным?