如何在JS中从对象数组的键值对生成目标字符串数组?
解决从对象数组提取id值组成字符串数组的问题
嘿,我来帮你搞定这个问题!你当前的代码有两个小问题:
- 调用
Object.values(array)完全没必要,因为数组本身的元素就是它的“值”,所以输出还是原数组; - 你在循环里把整个对象(比如
{ "id": "123" })push进了strinArray,而不是提取对象里的id属性值。
下面给你几种可行的解决方案:
方案1:用Array.map()(最简洁优雅)
这是处理数组转换最常用的方式,一行代码就能搞定:
const array = [{ "id": "123" }, { "id": "124" }]; const stringArray = array.map(item => item.id); console.log(stringArray); // 输出: ["123", "124"]
map()方法会遍历数组的每一个元素,返回你指定的item.id,自动把这些值组装成新数组。
方案2:修复你原来的for循环代码
如果你想保留自己的循环逻辑,只需要修改push的内容即可:
const array = [{ "id": "123" }, { "id": "124" } ]; const stringArray = []; function convert() { for (const val of array) { // 把val改成val.id,提取对象中的id值 stringArray.push(val.id); } } convert(); console.log(stringArray); // 输出: ["123", "124"]
方案3:用Array.forEach()
和循环逻辑类似,但写法更简洁:
const array = [{ "id": "123" }, { "id": "124" }]; const stringArray = []; array.forEach(item => { stringArray.push(item.id); }); console.log(stringArray); // 输出: ["123", "124"]
个人最推荐方案1,因为它符合函数式编程的风格,代码简洁且可读性高,非常适合这种“数组元素转换”的场景。
内容的提问来源于stack exchange,提问作者hussain
相关产品推荐
相关产品推荐

