2015-07-30 3 views
1

У меня есть объект с массивом с различными значениямиВозьмите несколько значение массива в объекте

var myObj = { 
      "number": 10, 
      "general": "general", 
      "array": [{ 
       "num1": 11, 
       "text": "text1", 
      }, { 
       "num2": 1, 
       "text": "text2", 
      }, { 
       "num3": 3, 
       "text": "text3", 

      } ] 
     }; 

Как это возможно, чтобы иметь результат, как text1, text2, text3

я попробовать это

for (i=0; i <myObj.array.length; i++) { 
    a = myObj.array[i].text 
    a1 += a 
} 

ответ

6

Array.prototype.map Используйте метод

var result = myObj.array.map(function (item) { 
    return item.text; 
}); 

Если вам нужен результат в виде строки, вы можете использовать join метод: result.join(',');

+2

Вам потребуется объединение в конце, чтобы получить строку в OP еще. Но +1 для карты –

+0

@BarbaraLaird благодарит за это, я не понял, что результат нужен как строка. – Andrey

3

Вы можете нажать значения в массив, а затем присоединиться к join(',')

var myObj = { 
      "number": 10, 
      "general": "general", 
      "array": [{ 
       "num1": 11, 
       "text": "text1", 
      }, { 
       "num2": 1, 
       "text": "text2", 
      }, { 
       "num3": 3, 
       "text": "text3", 

      }, ] 
     }; 

var a1 = []; 
for (i=0; i <myObj.array.length; i++) { 
    a1.push(myObj.array[i].text); 
} 
var resultString = a1.join(','); 
1

Вы можете сделать это с Foreach-Loop :

myObj.array.forEach(function(entry) { 
    line += entry.text; 
}); 
3

Не нужно использовать петлю. Скорее всего, map и join

var myObj = { 
 
    "number": 10, 
 
    "general": "general", 
 
    "array": [{ 
 
    "num1": 11, 
 
    "text": "text1", 
 
    }, { 
 
    "num2": 1, 
 
    "text": "text2", 
 
    }, { 
 
    "num3": 3, 
 
    "text": "text3", 
 

 
    }] 
 
}; 
 
var mapped = myObj.array.map(function(obj) { 
 
    return obj.text; 
 
}); 
 

 
var joined = mapped.join(','); 
 
console.log(joined);

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