'movement.entities.reduce is not a function or its return value is not iterable
So I have no idea what is going on, I got this code from a friend and I'm slowly learning how it works. This code is supposed to generate a random "movement" action inside a video game. It used to work smoothly, but after a couple of updates and features, this happens. So this is the error message:
TypeError [Error]: movement.entities.reduce is not a function or its return value is not iterable
This is the code:
export async function generateActions(prompt: string) {
const { data, status } = await axios.get<WitResponse>(
'https://api.wit.ai/message',
{
params: {
q: prompt,
},
headers: {
Authorization: `Bearer ${config.witai_key}`,
},
},
);
if (status !== 200) return [];
const movements =
data.entities['movement_with_repeat:movement_with_repeat'] ?? [];
const instructions: MovementInstruction[] = [];
for (const movement of movements) {
const [action, count] = movement.entities.reduce(
(a, b) => {
if (b.confidence < 0.9 || b.value === 'spin') return a;
if (b.name === 'wit$number') a[1] = b.value;
else if (b.name === 'movement_type') a[0] = b.value;
return a;
},
[null, 1] as [Direction | null, number],
);
if (action) {
instructions.push({
direction: action,
distance: count,
});
}
}
return instructions;
}
This is a huge program with probably over 10.000 lines of code. So there are some functions and objects that aren't shown here.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
