Переставьте объект, используя AngularJS forEach - PullRequest
0 голосов
/ 05 мая 2020

Я хочу переставить объект в AngularJS, который выглядит следующим образом:

var persons = [
  {socialnum : "123", pname: "Malcom Reynolds"},
  {socialnum : "456", pname: "Kaylee Frye"},
  {socialnum : "789", pname: "Jayne Cobb"}
];

Результат должен быть таким:

var persons = [
  {socialnum : "123", pname: "123 - Malcom Reynolds"},
  {socialnum : "456", pname: "456 - Kaylee Frye"},
  {socialnum : "789", pname: "789 - Jayne Cobb"}
];

Я пробовал это :

angular.forEach(persons , function (key, value) {    
this.push(values.socialnum + ' - ' + values.pname);    
}, persons );

Я не получил желаемого результата

Ответы [ 2 ]

1 голос
/ 05 мая 2020

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

var persons = [
  {socialnum : "123", pname: "Malcom Reynolds"},
  {socialnum : "456", pname: "Kaylee Frye"},
  {socialnum : "789", pname: "Jayne Cobb"}
];


angular.forEach(persons , function (key, value) {  
key['pname'] = key['socialnum']+' - '+ key['pname']   
}, persons );
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
0 голосов
/ 05 мая 2020

Для этого вы можете использовать Map .

let newArray = persons.map(value => {
  return {socialnum: value.socialnum, pname: value.socialnum + ' - ' + value.pname};
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...