我有一个像这样的数组
[2003, 5010, 4006, 5007, 2003, 5010]
我正在使用此指令提取特定列,并提供上述输出
// profiles is a multidimensional array
var pofileIds = profiles.map((el) => el.TargetProfileId)
现在我想要一个像这样的输出
[{ ids : 2003}, { ids : 5010 },{ ids : 4006 },{ ids : 5007 },{ ids : 2003 }]
或者这个
ids=2003&ids=5010&ids=4006&ids=5007&ids=2003
我正在研究现有项目,无法改变这一点。我需要调用asp.net服务来返回所需的数据。该应用程序正在Web上工作,我正在努力将其转换为移动设备,但我必须使用与移动设备相同的服务作为网络。
答案 0 :(得分:1)
当我使用(el) => ...
时,我收到错误消息。
试试这个
var arr = [2003, 5010, 4006, 5007, 2003, 5010];
var profileIds = arr.map(function (elem) {
return { "ID": elem };
});
答案 1 :(得分:0)
尝试:
profiles.map(el => ({ ids: el.TargetProfileId }))
来自Understanding ECMAScript 6 arrow functions:
因为花括号用于表示函数的主体,所以想要在函数体外返回对象文字的箭头函数必须将文字包装在括号中。
答案 2 :(得分:0)
感谢您给出的答案和时间。顺便说一句,我找到了一些简单的解决方案,我将在这里发布。
这是我的数组
[2003, 5010, 4006, 5007, 2003, 5010]
首先我使用了用户jsonscript的这条指令。但我不得不稍微修改一下
var pofileIds = profiles.map((el) => { return { "ids": el.TargetProfileId }})
这会产生此结果
[Object {ids=2003}, Object {ids=5010}, Object {ids=4006}, Object {ids=5007}, Object {ids=2003}, Object {ids=5010}]
然后使用jquery $.param
pofileIds = pofileIds.map((el) => $.param(el) )
输出
["ids=2003", "ids=5010", "ids=4006", "ids=5007", "ids=2003", "ids=5010"]
最后javascript加入
pofileIds = pofileIds.join("&")
输出
ids=2003&ids=5010&ids=4006&ids=5007&ids=2003&ids=5010
希望它有所帮助。
答案 3 :(得分:-1)
使用纯JS应该很容易:
var myArray= [2003, 5010, 4006, 5007, 2003, 5010],
myObject,
myResponse = [];
for (var index in myArray)
{
myObject = new Object();
myObject.ids = myArray[index];
myResponse.push(myObject);
}
//Output in the console for double check
console.log (myResponse);