Скопируйте первые 7 ключей в объекте в новый объект

Скопируйте первые 7 ключей в объекте в новый объект

06.01.2020 08:38:15 Просмотров 42 Источник

Как следует из названия, как я могу создать новый объект, содержащий 7 первых ключей другого объекта, используя JS? :) Это структура объекта, из которого я хотел бы скопировать данные.

{"data":[{"id":2338785,"team1":{"id":10531,"name":"Just For Fun"},"team2":{"id":10017,"name":"Rugratz"},"result":"2 - 0","event":{"name":"Mythic Cup 5","id":5148},"format":"bo3","stars":0,"date":1578279271000},....],"last_update":1578329378792}

Допустим, есть 100 ключей, подобных этому, и я хочу скопировать только первые 7 в новый объект в JS.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object#comment105396450_59616564
Вы должны знать, что ключи в объектах не сортируются. Таким образом, вы должны указать, каким образом вы хотите упорядочить свои ключи (например, буквенно-цифровые).
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object#comment105396528_59616564
@Snapstromegon это уже старо. Они имеют определенный порядок обхода в ES6: ключи, начинающиеся с числа, сортируются первыми; все остальное сортируется в том порядке, в котором оно было добавлено к объекту. Смотрите stackoverflow.com/questions/30076219/…
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object#comment105396613_59616564
Однако порядок может варьироваться в зависимости от браузера: stefanjudis.com/today-i-learned/…
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object#comment105396629_59616564
Они все еще не упорядочены семантически, "первые 7 ключей" не имеют полезного значения.
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object#comment105396696_59616564
Когда вы говорите "создать новый объект, содержащий первые 7 ключей", вы имеете в виду, что хотите скопировать и ключ, и значение в новый объект?
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object#comment105396717_59616564
@Amy в вашем связанном ответе ясно представляет спецификацию языка, поскольку порядок хорошо определен, но почти каждый способ использовать порядок (for...in, объект.leys() и JSON.stringify) не обязаны соблюдать этот порядок. Кроме того, браузеры все еще различаются по своему поведению.

Ответы - Скопируйте первые 7 ключей в объекте в новый объект / Copy first 7 keys in object into a new object

Является ответом!
Ali Jixer

06.01.2020 08:50:17

Ну технически, у вас есть только 2 ключа в данном объекте, но если вы имеете в виду объект данных, вот что вы можете сделать.

const MyNewObject = Object.entries(YourObject)
const results = []

и простой для петли

MyNewObject.forEach((pair,i) => {
    // for the 8th item it breaks and doesn't push it to results array
    if ( i === 7 ) break;
    results.push(pair)
}

Или вместо этого использовать кусочек :

// a little bit neater , and u call remove the empty results array above
const thisNewResult = MyNewObject.slice(0,6)

и наконец результаты это массив пар ключ значение и вы должны сделать этот код чтобы сделать новый объект из записей результатов

const finalResults = Object.fromEntries(results)

Пожалуйста, обратите внимание, что это может быть не тот заказ, который вы хотите, так как объект.Записи дают вам тот же порядок, что и порядок for in loop (для получения дополнительной информации посетите порядок элементов в цикле " for (...in ...))

https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object/59616685#comment105396745_59616685
Может быть, использовать массив.нарезать вместо foreach, так как он является более четким и позволяет избежать использования вырвались наружу переключателя.
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object/59616685#comment105396771_59616685
да, верно, это будет работать лучше. ТПХ
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object/59616685#comment105396878_59616685
Я использую vue.js и использование break, похоже,не работает, не могли бы вы объяснить, как я буду делать это с массивом.нарезать вместо этого? :)
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object/59616685#comment105396992_59616685
Вы просто заменяете цикл на const results = MyNewObject.ломтик (0,7); знайте, что вы должны подчиняться константе.
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object/59616685#comment105397041_59616685
Я обновил свой ответ
https://stackoverflow.com/questions/59616564/copy-first-7-keys-in-object-into-a-new-object/59616685#comment105397049_59616685
Не могу опубликовать это в качестве ответа, потому что Моды закрыли вопрос, но то, что вы ищете, это Object.fromEntries(Object.entries(obj).slice(0, 8))
Закрыть X