gpt4 book ai didi

javascript - 映射数组项不会呈现所有元素

转载 作者:行者123 更新时间:2023-11-30 14:30:28 26 4
gpt4 key购买 nike

在我更新对象中的答案后,它变得未定义。所以它不适合我的其余应用程序,我在乞讨中所拥有的:

0
:
{answers: Array(5), category: {…}, description: null, legacyName: null, name: null, …}
1
:
{answers: Array(3), category: {…}, description: null, legacyName: null, name: null, …}
2
:
{answers: Array(3), category: {…}, description: null, legacyName: null, name: null, …}
3
:
{answers: Array(3), category: {…}, description: null, legacyName: null, name: null, …}
4
:
{answers: Array(2), category: {…}, description: null, legacyName: null, name: null, …}

修改后的内容:

0
:
undefined
1
:
undefined
2
:
undefined
3
:
undefined
4
:
undefined

reducer :

function updateObject(oldObject, newValues) {
return Object.assign({}, oldObject, newValues);
}

function updateItemInArray(array, questionId,answerId, newValue) {
return {
project: array.map(item => {
if(item.id !== questionId) {
return item;
} else {
item.answers.map(answer => {
if(answer.id !== answerId) {
return answer;
} else {
updateObject(answer, { value : newValue})
}
});
}
})
}
}


export function project(state = [], action){

switch(action.type){
case 'PROJECT_FETCH_SUCCESS':
return action.project; //initialize the project from a fetch
case 'ANSWER_UPDATE_SUCCESS':
{
return updateItemInArray(state, action.questionId, action.answerId, action.newValue); //Want to change a value in one object in the array of arrays
}
default:
return state
}
}

我想做的是在数组中找到数组,然后在该数组中找到对象来改变它的值。但由于某种原因,它返回未定义。我在 redux 文档中看到的正在使用的功能: https://redux.js.org/recipes/structuring-reducers/refactoring-reducers-example

最佳答案

您没有从 map 函数内的 else 条件返回

function updateItemInArray(array, questionId,answerId, newValue) {
return {
project: array.map(item => {
if(item.id !== questionId) {
return item;
} else {
// need a return statement here
return item.answers.map(answer => {
if(answer.id !== answerId) {
return answer;
} else {
updateObject(answer, { value : newValue})
}
});
}
})
}
}

关于javascript - 映射数组项不会呈现所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51282291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com