javascript - 将对象转换为数组而不将 Object.entries 的键和值放入 JavaScript 中的字符串
问题描述
我想像这样转换一个对象:
let obj = {
arabicLang: false,
cancelVisitEmailAlert: false,
canselVisitSmsAlert: false
}
变成这样的键值对数组:
[
"arabicLang": false,
"cancelVisitEmailAlert": false,
"canselVisitSmsAlert": false
]
我阅读了 StackOverflow 中的所有问题,但没有一个是我的情况
我试试这个,但它返回字符串中的键和值:
let data = [];
for (const [key, value] of Object.entries(obj)) {
data.push(createData(key, value));
}
function createData(key, value) {
return key + ":" + value;
}
也试试这个:
let arr = Array.of(obj)
console.log(arr)
/* output is
[{
arabicLang: false,
cancelVisitEmailAlert: false,
canselVisitSmsAlert: false
}]
*/
它保留对象容器
解决方案
您可以使用.reduce
或.map
喜欢:
let obj = {
arabicLang: false,
cancelVisitEmailAlert: false,
canselVisitSmsAlert: false
};
// Using .reduce
const result = Object.entries(obj).reduce((acc, [key, value]) => {
acc[key] ??= {[key]: value};
return acc;
}, {});
console.log(Object.values(result));
// Using .map
const result2 = Object.entries(obj).map(([key, value]) => ({[key]: value}));
console.log(result2);
推荐阅读
- javascript - 如何使 touchstart 和 touchend 和 touchover 与鼠标事件一起工作?
- webpack - 如何在 webpack4 manifest.json 中为 *ALL* .js、.css 和 .png 资产设置键前缀?
- powerbi - 如何根据一列值和另一列的特定日期在 DAX 中创建计算列?
- tensorflow - 如何在 tf.estimator.Estimator API 中获取 tf.summary 以在 EVALUATE 运行期间为 tensorboard 保存变量?
- python - Pandas / SQL 数据类型的困难?
- android - Android 正方体错误。找不到数据文件
- abap - BAPI 用于获取材料和订单 BOM?
- javascript - 通过 Javascript 开始文件下载
- java - 具有 2 个值的循环集合
- php - php引擎的实时日志