Reputation: 5799
I currently am dealing with a Web Service that is returning an array of strings to the client. From here I would like to take this array of strings and convert it into an object that gives each string a name so to reference it later.
So start with this:
var result = ["test", "hello", "goodbye"];
And I would like to end up with this:
var final = [{'value': "test"}, {'value': "hello"}, {'value': "goodbye"}];
I use jquery. Is there a easy to accomplish this?
Upvotes: 3
Views: 1999
Reputation: 10153
You could do something like the following:
var input = ["one", "two", "three"],
output = [],
obj;
for (var i = 0; i < input.length; i++)
{
obj = { "value" : input[i] };
output.push(obj);
}
Link to the fiddle
Upvotes: 2
Reputation: 169451
var final = $.map(result, function(val) {
return { value: val };
});
Alternatively you can use the ES5 alternative
var final result.map(function(val) {
return { value: val };
});
Or a simple iteration.
var final = [];
for (var i = 0, ii = result.length; i < ii; i++) {
final.push({ value: result[i] });
}
Upvotes: 7
Reputation: 154908
I don't think jQuery has to be used here.
var result = ["test", "hello", "goodbye"];
var final = [];
for(var i = 0; i < result.length; i++) {
final.push({value: result[i]})
}
Upvotes: 4
Reputation: 34169
I haven't tested this but you can do something like
$(result).map(function(){return {'value':this}}
);
Upvotes: 2