如何不通过索引从JSON中按code='size'提取list的value值
解决方案
可以通过遍历外层数组,根据对象的code属性匹配到目标项,再提取对应list中的value值,完全不需要依赖数组索引。以下是JavaScript实现示例:
const data = [ ["color", { name: "Цвет", code: "color", list: [{ value: "Зеленый" }, { value: "Красный" }] }], ["size", { name: "Размер", code: "size", list: [{ value: "100" }, { value: "150" }] }] ]; // 找到code为"size"的项 const sizeItem = data.find(item => item[1].code === "size"); // 提取list中的value并转为空格分隔的字符串 const result = sizeItem?.[1].list.map(item => item.value).join(" "); console.log(result); // 输出: "100 150"
代码说明
- 使用
find方法遍历外层数组,匹配item[1].code === "size"的项,彻底避免依赖数组索引 - 可选链操作符
?.用于处理找不到匹配项的边界情况,防止代码报错 - 通过
map提取list中每个元素的value,再用join拼接成目标格式的字符串
如果需要获取list的数组长度,直接取sizeItem?.[1].list.length即可。
内容的提问来源于stack exchange,提问作者Gleb Pristupa
相关产品推荐
相关产品推荐

