У меня есть массив объектов с несколькими значениями. Я хотел бы получить только последние три значения (фамилия владельца, цвет и кора).
Я пытался использовать срез или длину, но безуспешно.
const myValues: MyValues<string>[] = [
{
name: "Lucky",
surname: "Luck",
age: "3",
breed: "Shepherd",
owner: "Paul",
ownerSurname: "Luck",
color: "Brown",
bark: "All the time",
},
]
const newData = myValues.slice(-3)
<MyComponent value = {newData}/>
🤔 А знаете ли вы, что...
С помощью JavaScript можно создавать клиентские приложения для мобильных устройств с использованием фреймворков, таких как React Native и NativeScript.
Это больше относится к простому Javascript, а не к React.
Если вы действительно хотите это знать, сначала вам нужно «получить» сам объект, в данном случае, поскольку это массив с одним единственным элементом, остается только выбрать индекс [0]
.
const myValues: MyValues<string>[] = [
{
name: "Lucky",
surname: "Luck",
age: "3",
breed: "Shepherd",
owner: "Paul",
ownerSurname: "Luck",
color: "Brown",
bark: "All the time",
},
]
const obj = myValues[0];
const newObj = {
ownerSurname: obj.ownerSurname,
bark: obj.bark,
color: obj.color
};
<MyComponent value = {newObj}/>
Это базовые функции JavaScript, не связанные с React. Возможно, вам нужно найти более базовые уроки о том, как работают объекты и массивы в Javascript.
Я могу только догадываться, чего вы на самом деле хотите достичь, поэтому предложу несколько разных решений.
Я думаю, вы хотите получить только значения «ownerSurname», «color» и «bark» для каждого из ваших объектов в вашем массиве. Этого можно добиться следующим образом:
[{name: "name", age: 20}].map(value => ({name: value.name}))
В качестве объяснения: этот код отображает каждый объект, а затем возвращает новый объект только с полем «имя». Вы можете изменить этот код на свой конкретный пример.
Я также могу представить, что вы можете захотеть исключить все остальные значения только из одного объекта. Это может быть недоразумением при использовании других языков, таких как phps, где объекты обрабатываются с помощью скобок. Вы можете просто сделать это, удалив скобки из «myValues» следующим образом:
const myObject = {name: "name", age: 19}
const myNewObject = {name: myObject.name}
Обратите внимание, что срез принимает последние три значения массива, а не объекта. Пожалуйста, посмотрите разницу здесь: https://medium.com/@zac_heisey/objects-vs-arrays-42601ff79421