如何在JavaScript中将数组值循环存入指定结构的对象?
解决方案:将数组转换为指定结构的sections数组
方法1:使用Array.map()(简洁高效)
利用数组的map方法直接将原数组元素转换为目标结构的对象,再嵌套进sections的结构中:
const exmpArr = ["PX1","PX2","PX3"]; const sections = [ { rows: exmpArr.map(item => ({ title: item, rowId: item })) } ]; console.log(sections);
map方法会遍历原数组,对每个元素执行回调函数生成对应的对象,最终自动拼接成完整的rows数组,直接嵌入sections的对象即可。
方法2:使用传统for循环(适合理解基础逻辑)
如果习惯用for循环,需要先初始化好基础结构,再逐个添加元素——不能直接在对象字面量里写循环语句:
const exmpArr = ["PX1","PX2","PX3"]; // 先创建sections的基础结构 const sections = [{ rows: [] }]; // 遍历原数组,生成每个row对象并添加到rows数组中 for (let i = 0; i < exmpArr.length; i++) { const item = exmpArr[i]; sections[0].rows.push({ title: item, rowId: item }); } console.log(sections);
为什么你之前的写法无效?
对象字面量({})内部只能定义键值对,无法直接嵌入for循环这类语句。必须先处理好rows数组的内容,再将其赋值给rows属性。
内容的提问来源于stack exchange,提问作者Naufal Azmi
相关产品推荐
相关产品推荐

