如何用包含 TypeScript 中较新对象的数组替换对象数组?

How to replace an array of objects with an array including newer objects in TypeScript?

例如:我有一个这样的对象数组:

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 中完成此操作?

试试这个 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));

当然 :)

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);

虽然我不推荐这个:functional programming is awesome

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)