I have the code bellow and I'm trying to console.log the information from message of each array. The problem is there are some undefined "payload". What can I do to ignore the undefined values and keep iterating through the arrays?
const repositoriesActivities = await getUserActivities(userName)
for (let i = 0; i < repositoriesActivities.length; i++) {
let activities = repositoriesActivities[i].payload.commits[i].message;
if (activities !== undefined){
console.log(activities)
}
}
You can use ? operand to check. Example:
const repositoriesActivities = await getUserActivities(userName)
for (let i = 0; i < repositoriesActivities.length; i++) {
let activities = repositoriesActivities[i]?.payload?.commits[i]?.message;
if (activities){
console.log(activities)
}
}
Check this to get more information about optional chaining https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
this means the object "commits" is empty. Can you try:
const repositoriesActivities = await getUserActivities(userName)
for (let i = 0; i < repositoriesActivities.length; i++) {
let activities = null
if(repositoriesActivities[i] && repositoriesActivities[i].payload && typeof repositoriesActivities[i].payload.commits === "object" && repositoriesActivities[i].payload.commits.length >= (i+1) && repositoriesActivities[i].payload.commits[i].message){
activities = repositoriesActivities[i].payload.commits[i].message
}
if (activities !== null){
console.log(activities)
}
}