Как заменить массив объектов на массив, включающий новые объекты в TypeScript? - PullRequest
1 голос
/ 23 октября 2019

Например: у меня есть массив таких объектов:

let arrayOfObjects: [
    { "id": 0, "name": "Available" },
    { "id": 1, "name": "Ready" },
    { "id": 2, "name": "Started" }
];

Теперь я хочу заменить или перезаписать указанный выше массив тем же массивом, но с разными значениями (одинаковые ключи, разные значения):

let arrayOfObjects: [
    { "id": 0, "name": "Not Available" },
    { "id": 1, "name": "Not Ready" },
    { "id": 2, "name": "Not Started" }
];

Как это можно сделать в TypeScript?

Ответы [ 3 ]

1 голос
/ 23 октября 2019

Конечно:)

let arrayOfObjects = [
    { "id": 0, "name": "Available" },
    { "id": 1, "name": "Ready" },
    { "id": 2, "name": "Started" }
];

const newValues = ['Not Available', 'Not Ready', 'Not Started'];


newValues.forEach((value, i) => {
  arrayOfObjects.find(o => o.id === i).name = value;
});

console.log(arrayOfObjects);

Я бы не рекомендовал это: функциональное программирование - это круто .

1 голос
/ 23 октября 2019

let arrayOfObjects = [
  { "id": 0, "name": "Available" },
  { "id": 1, "name": "Ready" },
  { "id": 2, "name": "Started" }
];

let names = ['Not Available', 'Not Ready', 'Not Started']
let result = arrayOfObjects.map((user, index) => ({ ...user, name: names[index] }))

console.log(result)
1 голос
/ 23 октября 2019

Попробуйте это JS

let oneArray = [
    { "id": 0, "name": "Available" },
    { "id": 1, "name": "Ready" },
    { "id": 2, "name": "Started" }
];
let twoArray = [
    { "id": 0, "name": "Not Available" },
    { "id": 1, "name": "Not Ready" },
    { "id": 2, "name": "Not Started" }
];

let newArray = Object.assign([], oneArray, twoArray);
console.log(newArray);

В TS

interface Data {
  oneArray: array;
  twoArray: array;
}

function merge(data: Data) {
  return Object.assign([], data.oneArray, data.twoArray);
}

let user = {
    oneArray: [
      { "id": 0, "name": "Available" },
      { "id": 1, "name": "Ready" },
      { "id": 2, "name": "Started" }
    ],
    twoArray:  [
      { "id": 0, "name": "Not Available" },
      { "id": 1, "name": "Not Ready" },
      { "id": 2, "name": "Not Started" }
  ]
};

console.log(merge(user));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...