如何提取数组对象中的指定属性值并推入新数组?
解决方案:提取数组对象的
name属性到新数组 嘿,别担心,刚入门编程遇到这种小问题太正常啦!你的思路是对的——遍历原数组把需要的属性存到新数组里,只是差了关键一步:你现在把整个对象推进新数组了,而不是对象里的name属性。
方法1:修正你的for循环
只需要把push的内容改成ingredients[i].name,就能精准提取每个对象的name值:
var ingredients = [ { id: 1, name: "onion", mineralsUnit: "mg", water: 89.11 }, { id: 2, name: "carrot", calcium: 23, iron: 0.21, otherUnit: "g", water: 89.11 }, { id: 3, name: "peanut", iron: 0.21, otherUnit: "g", water: 89.11 } ]; var myIngredients = []; for (var i = 0; i < ingredients.length; i++) { // 这里指定提取name属性 myIngredients.push(ingredients[i].name); } console.log(myIngredients); // 输出: ["onion", "carrot", "peanut"]
方法2:用更简洁的Array.map()(推荐)
JavaScript里有个专门用来转换数组的方法map(),它会遍历原数组的每个元素,把你指定的结果返回成一个新数组,一行代码就能搞定:
var ingredients = [ { id: 1, name: "onion", mineralsUnit: "mg", water: 89.11 }, { id: 2, name: "carrot", calcium: 23, iron: 0.21, otherUnit: "g", water: 89.11 }, { id: 3, name: "peanut", iron: 0.21, otherUnit: "g", water: 89.11 } ]; // 用map遍历每个对象,返回它的name属性 const myIngredients = ingredients.map(item => item.name); console.log(myIngredients); // 输出: ["onion", "carrot", "peanut"]
map()是处理这种“从数组对象提取属性”场景的最佳实践,代码更简洁易读,也不容易出错~
内容的提问来源于stack exchange,提问作者user13434180
相关产品推荐
相关产品推荐

