在Javascript中使用foreach格式化数据
我想使用如下格式的数据进行API调用在Javascript中使用foreach格式化数据,javascript,Javascript,我想使用如下格式的数据进行API调用 [{"Id":10, “FolderID”:22},{"Id":12, “FolderID”:22}] 我有以下不同的数据源:(使用redux) 这是一个常量值 const documentsId = indexes.copyDocuments; 这是8,9,10的格式 我试图通过循环文档数组来实现它 用foreach 我知道如何附加数据的唯一方法是使用数组,但这会创建每个循环的新数组,这不是我想要的 const data = []; document
[{"Id":10, “FolderID”:22},{"Id":12, “FolderID”:22}]
我有以下不同的数据源:(使用redux)
这是一个常量值
const documentsId = indexes.copyDocuments;
这是8,9,10的格式
我试图通过循环文档数组来实现它
用foreach
我知道如何附加数据的唯一方法是使用数组,但这会创建每个循环的新数组,这不是我想要的
const data = [];
documentsId.forEach(function(doc){
data.push(`"Id":${doc},"FolderID":${FolderId}`)
})
有人知道这样做的方法吗?谢谢。我相信您正在寻找的是地图原型 map所做的是从原始数组返回一个新数组,所以在您的示例中,我们有一个
[8, 9, 10]
我们用与使用forEach
相同的方法映射它,它先传递项,然后传递索引
const newArray = [8, 9, 10].map(function (item, index) {
return [item, index]
})
// [[8, 0], [9, 1], [10, 2]]
映射原型返回一个新数组,因此无需复制数组,也无需对其进行变异。这使映射原型不可变
const documentsId=[8,9,10]
/*不管你怎么得到你的folderId*/
常数folderId=22;
const mappedToObjectArray=documentsId.map(id=>({id,folderId}))
/*
如果您习惯es5,这可能看起来更熟悉
函数formatData(){
返回文档SID.map(函数(文档){
返回{
id:doc,
福尔德里德:福尔德里德
}
})
}
*/
log(mappedToObjectArray)
传递到数据
数组中的内容是字符串,而您需要的是对象。而不是:
data.push(`"Id":${doc},"FolderID":${FolderId}`)
……做:
data.push({ Id: doc, FolderID: FolderId })
…和数据
将是一个对象数组,而不是字符串
我还建议使用@JoeWarner建议的map
作为构建阵列的更简洁的方法
const data = documentsId.map(doc => ({ Id: doc, FolderID: FolderId }))
也许可以尝试以下内容:
var tmp={};tmp.Id=单据Id;tmp.FolderId=doc.FolderId;数据推送(tmp)代码>你想做的很简单。但能否提供有关阵列的更多详细信息。控制台什么是documentsId。我不确定您如何在下面的数据中传递FolderId
。push(
“Id”:${doc},“FolderId”:${FolderId})
。如果要将对象推送到数组中,可以使用data.push({“Id”:`${doc}`,“FolderID”:`${FolderID}}
。数组0:50 1:49长度:2。当我尝试使用对象而不是数组时,它会说它未定义
const data = documentsId.map(doc => ({ Id: doc, FolderID: FolderId }))