2013-10-10 2 views
2

У меня есть массив как этотДобавление индекса в каждом элементе массива JavaScript

[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, чтобы вернуть мне нужные данные. Приложение работает в Интернете, и я работаю над его преобразованием на мобильный, но я обязан использовать одни и те же сервисы для мобильных устройств в Интернете.

+2

Что такое '(el) => el.TargetProfileId'? Это не похоже на Javascript. Это Coffeescript? – Barmar

+0

Почему бы не упростить цикл и создать требуемый формат? – iJade

+0

@Barmar это действительно javascript, который вы можете проверить на скрипке –

ответ

0

Try:

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

От Understanding ECMAScript 6 arrow functions:

Поскольку фигурные скобки используются для обозначения тела функции, функции стрелка, которая хочет вернуть объект буквальные вне тела функции должна обернуть буква в круглых скобках.

+0

Я уже тестировал проблему с производством –

+0

Вы должны были сказать это в вопросе. Какая проблема возникает? – Barmar

+0

отображает значения как undefined –

-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); 
+0

не использовать 'for ... in ...' на массивах! – Alnitak

+0

Вы можете использовать для (var index = 0; index

+0

это не вопрос «предпочтения», использование 'for ... in' принципиально _incorrect_. – Alnitak

1

Когда я использую (el) => ... я получаю сообщение об ошибке. Попробуйте нравится эта

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

var profileIds = arr.map(function (elem) { 
    return { "ID": elem }; 
}); 
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 J ойн

pofileIds = pofileIds.join("&") 

Выхода

ids=2003&ids=5010&ids=4006&ids=5007&ids=2003&ids=5010 

Надеется, что это поможет кому-то.

Смежные вопросы