React开发:如何从嵌套数组中提取对象的指定属性值
提取嵌套数组中对象的指定属性值(React场景)
针对你给出的嵌套数组结构,我们可以通过以下方式提取所有对象的b属性值:
核心解决方案
你的数组结构是外层数组包含多个子数组,每个子数组仅包含一个对象。直接通过map遍历外层数组,取出每个子数组的第一个元素并获取其b属性即可:
const [answerArr, setAnswerArr] = useState([]); useEffect(() => { const extractCode = () => { // 遍历外层数组,每个item是子数组,取子数组第一个对象的b属性 const res = myArr.map(item => item[0].b); // 将结果更新到状态中 setAnswerArr(res); }; extractCode(); }, [myArr]); // 注意依赖项应为myArr,原代码中的codeArr疑似笔误
扩展场景:子数组包含多个对象
如果你的子数组可能存在多个对象,需要提取所有对象的b值,可以先将嵌套数组扁平化,再进行map操作:
// 方式1:先扁平化数组再map const res = myArr.flat().map(obj => obj.b); // 方式2:使用flatMap一步完成 const res = myArr.flatMap(subArr => subArr.map(obj => obj.b));
原代码问题说明
- 未在
map回调中返回具体值,导致res会是一个全为undefined的数组 - 未调用
setAnswerArr更新状态,所以页面不会看到结果 - 依赖项
codeArr应为myArr,确保数组变化时重新执行提取逻辑
内容的提问来源于stack exchange,提问作者jaehyuk kim
相关产品推荐
相关产品推荐

