我有一个数组,里面有一些对象。每个对象在其外部都有一个 ID,但我想将该 ID 插入对象内部。
这是数组:
'DISCOUNTS2: ', [ { id: 'discount1',
│ data:
│ { food_description: 'kifle me mermelad dhe nutella',
│ time: '22:00',
│ price: '1',
│ amount: 4,
│ food_name: 'kifle',
│ rest_id: '1' } },
{ id: 'ai34Lyk9uXtpGDcCKfqa',
│ data:
│ { food_description: 'fsdfdsfdsf',
│ time: '345345',
│ price: '6',
│ amount: 4,
│ food_name: 'sdsddsf',
│ rest_id: '5' } },
{ id: 'discount3',
│ data:
│ { food_description: 'torte me dredheza',
│ time: '18:00',
│ price: '3',
│ amount: 5,
│ food_name: 'torte',
│ rest_id: 'Aura1' } },
{ id: 'discount2',
│ data:
│ { food_description: 'byrek me mish dhe djath',
│ time: '20:00',
│ price: '0.50',
│ amount: 6,
│ food_name: 'byrek',
└ rest_id: 'jeta1' } } ]
这是我在数组中插入数据的代码:
var ref = firebase.firestore().collection('discounts')
.orderBy('rest_id')
.limit(this.state.limit)
ref.onSnapshot((querySnapshot => {
var discounts = querySnapshot.docs.map(doc => { return { id: doc.id, data: doc.data() } });
var lastVisibleDiscount = discounts[discounts.length - 1].rest_id;
this.setState({
discounts: discounts,
lastVisibleDiscount: lastVisibleDiscount,
loading: false,
});
}));
最佳答案
在您的代码中,只需在获取时添加id
。替换为:
var discounts = querySnapshot.docs.map(doc => { return { id: doc.id, data: doc.data() } });
用这个:
var discounts = querySnapshot.docs.map(doc => ({ id: doc.id, ...doc.data() }));
请注意,您将拥有一个更扁平的结构。不再有具有 id
和 data
属性的包装对象。该数组将立即包含数据对象,包括 id
属性。
关于javascript - 当ID在对象外部时如何将其移动到对象内部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59513682/