user1
user1

Reputation: 1065

javascript: truncate object properties in an array

I have an array of objects, say the object looks like following:

var row = {
    data: 'test',
   text: 'test'
};

I want to loop through the array and just get the object with text property. What is the best way to do it? So, I want to loop and the object should look like: row = {text: 'test'}

I tried something like below without luck:

arr.forEach(function (item){ //arr is the array of object
     return {text: item.text};
});

Upvotes: 2

Views: 1442

Answers (2)

Vishnu
Vishnu

Reputation: 12303

As you want a object with single key value pair, you don't need to store in object form. You can save them as an array.

var array = [
   {
      text : "text",
      data : "data"
   },
   {
      text : "text1",
      data : "data1"
   }
]

var newArray = array.map(function(item){
    return item.data;
});

your output will look like

 ['text','text1']

Upvotes: 0

Amir Popovich
Amir Popovich

Reputation: 29846

Use Array.prototype.map for that:

var arr = [{
    data: 'testData',
   text: 'testText'
}];

var newArr = arr.map(function(item){
    return {text: item.data};
});

The result will look like:

[{ text: 'testData' }]

If you want it to be [ {testText: 'testData' }] then:

var arr = [{
    data: 'testData',
   text: 'testText'
}];

var newArr = arr.map(function(item){
    var obj = {};
    obj[item.text] = item.data;
    return obj;
});

Upvotes: 3

Related Questions