Collin Estes
Collin Estes

Reputation: 5799

Converting string array to Name/Value object in javascript

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

Answers (4)

Mike Fielden
Mike Fielden

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

Raynos
Raynos

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

pimvdb
pimvdb

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

Amir Raminfar
Amir Raminfar

Reputation: 34169

I haven't tested this but you can do something like

$(result).map(function(){return {'value':this}});

Upvotes: 2

Related Questions