javascript - 如何将动态数据放在对象数组下?
问题描述
这就是我获取数据的方式:
const dataSaved = [{
count: 52,
deliveryAmount: 0,
discountAmount: 7,
guests: 2,
refundedAmount: 9,
serviceChargeAmount: 4,
storeId: "aslkasad",
subtotal: 2,
taxAmount: 4,
total: 3
}, {
count: 52,
deliveryAmount: 0,
discountAmount: 7,
guests: 2,
refundedAmount: 9,
serviceChargeAmount: 4,
storeId: "ldfgfgdf",
subtotal: 2,
taxAmount: 4,
total: 3
}]
所以基本上我已经做了一个方法,在这个方法中我过滤一个对象数组并取出我需要的字段:
getDataParsed(dataSaved, storeFieldRequired) {
const barData = [];
for (const store of dataSaved) {
barData.push({
data: [store.storeFieldRequired],
label: store.storeId
});
}
return barData;
}
当我想获取数组的特定字段时,我的 [store.storeFieldRequired] 带来了 undefined。我该如何解决?
解决方案
不是使用store.storeFieldRequired
,而是需要使用store[storeFieldRequired]
。它们有不同的含义。
store.storeFieldRequired
意思是获取对象上storeFieldRequired
key的值。store
store[storeFieldRequired]
意思是获取对象上storeFieldRequired
可变值键的值store
。
const dataSaved = [{
count: 52,
deliveryAmount: 0,
discountAmount: 7,
guests: 2,
refundedAmount: 9,
serviceChargeAmount: 4,
storeId: "aslkasad",
subtotal: 2,
taxAmount: 4,
total: 3
}, {
count: 52,
deliveryAmount: 0,
discountAmount: 7,
guests: 2,
refundedAmount: 9,
serviceChargeAmount: 4,
storeId: "ldfgfgdf",
subtotal: 2,
taxAmount: 4,
total: 3
}];
function getDataParsed(dataSaved, storeFieldRequired) {
const barData = [];
for (const store of dataSaved) {
barData.push({
data: [store[storeFieldRequired]],
label: store.storeId
});
}
return barData;
}
console.log(getDataParsed(dataSaved, 'count'));
简单地说,使用Array.prototype.map,您可以获得结果。
const dataSaved = [{
count: 52,
deliveryAmount: 0,
discountAmount: 7,
guests: 2,
refundedAmount: 9,
serviceChargeAmount: 4,
storeId: "aslkasad",
subtotal: 2,
taxAmount: 4,
total: 3
}, {
count: 52,
deliveryAmount: 0,
discountAmount: 7,
guests: 2,
refundedAmount: 9,
serviceChargeAmount: 4,
storeId: "ldfgfgdf",
subtotal: 2,
taxAmount: 4,
total: 3
}];
function getDataParsed(dataSaved, storeFieldRequired) {
return dataSaved.map((item) => ({
data: [item[storeFieldRequired]],
label: item.storeId
}));
}
console.log(getDataParsed(dataSaved, 'count'));
推荐阅读
- flutter - 在测试期间我应该怎么做“没有找到方向性小部件”
- typescript - 如何修复 VueJs3 和 typescript 应用程序中组件类型上不存在的属性?
- c# - 如何在 asp mvc 中使用 SignInManager 正确登录用户?
- ios - 如何使用与 NMANavigationManager (HERE SDK) 相同的语音播放测试语音指导语句?
- node.js - 为 Web 应用程序构建服务器的真正需要是什么?
- javascript - Electron 应用程序不会在前端使用 javascript 关闭
- sql - How to select records only if all matching records found in another table?
- java - Jenkins pipeline with pure Java code producing compilation issues
- c++ - 无法使用 stb_image
- python - 使用标识符的 Psycopg2 SQL 字符串组合