我想使用如下格式的数据进行 API 调用。
[{"Id":10, “FolderID”:22},{"Id":12, “FolderID”:22}]
我有以下不同的数据源:(使用 redux)
const FolderId = indexes.currentFolder.id;
这是一个常数值
const documentsId = indexes.copyDocuments;
这是 8, 9 , 10 的格式
我尝试通过循环文档数组来实现它 与 foreach。
我知道如何附加数据的唯一方法是使用数组,但这会为每个循环创建一个新数组,这不是我想要的。
const data = [];
documentsId.forEach(function(doc){
data.push(`"Id":${doc},"FolderID":${FolderId}`)
})
有人知道这样做的方法吗?谢谢。
最佳答案
我相信您正在寻找的是 map 原型(prototype)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
map 的作用是从原始数组返回一个新数组,因此在您的示例中我们有一个数组
[8, 9, 10]
我们以与使用 forEach
相同的方式映射它,它先传递项目,然后传递索引
const newArray = [8, 9, 10].map(function (item, index) {
return [item, index]
})
// [[8, 0], [9, 1], [10, 2]]
map 原型(prototype)返回一个新数组,因此无需复制数组以免改变它,这使得 map 原型(prototype)不可变
const documentsId = [8, 9, 10]
/* however you get your folderId */
const folderId = 22;
const mappedToObjectArray = documentsId.map(id => ({id, folderId}))
/*
If you're used to es5 this might look more familiar
function formatData() {
return documentsId.map(function (doc) {
return {
id: doc,
folderId: folderId
}
})
}
*/
console.log(mappedToObjectArray)
如果我误解了或者您对任何乐意提供帮助的事情感到困惑,请告诉我。
关于javascript - 在 Javascript 中使用 foreach 格式化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366618/