2

我有一个这样的数组

[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 服务来返回我想要的数据。该应用程序正在网络上运行,我正在努力将其转换为移动设备,但我必须为移动设备使用与网络相同的服务。

4

4 回答 4

1

当我使用(el) => ...我得到一个错误。像这样试试

var arr = [2003, 5010, 4006, 5007, 2003, 5010];

var profileIds = arr.map(function (elem) {
    return { "ID": elem };
});
于 2013-10-10T08:13:29.547 回答
0

尝试:

profiles.map(el => ({ ids: el.TargetProfileId }))

了解 ECMAScript 6 箭头函数

因为花括号用于表示函数的主体,所以想要在函数主体之外返回对象字面量的箭头函数必须将字面量括在括号中。

于 2013-10-10T08:02:55.777 回答
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

希望它可以帮助某人。

于 2013-10-10T09:08:26.563 回答
-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);
于 2013-10-10T08:04:45.340 回答