javascript - 将地图返回的对象分散到一个对象中
问题描述
我试图从我的循环中获取结果以传播到一个变量中
const updateds = {
...
(Array.from(document.querySelectorAll('.updated')).map(item => {
return {[item.dataset.slug]: item.dataset.position};
}))
};
结果应该像这样传播
{"chahan": "1", "jacques-lacoste": "2", "testcover": "3", "kreo": "4"}
但相反我得到
{"chahan":"1"},{"jacques-lacoste":"2"},{"testcover":"3"},{"kreo":"4"}
知道如何实现吗?
解决方案
使用map
高阶方法总是会返回一个数组。如果要将数组的对象组合成单个对象,reduce
则要使用高阶方法。
const updateds = Array.from(document.querySelectorAll('.updated')).reduce((accumulator, item) => {
return {
...accumulator,
[item.dataset.slug]: item.dataset.position
};
}, {})
推荐阅读
- jsp - 在 jsf ui 中交换 2 个字符串值
- vue.js - 在 Vue.js 中,如何获取输入以显示与模型不同的内容?
- java - 从 .txt 文件中读取数据并创建对象数组
- php - 无法使用自定义 php 函数上传文件
- java - jsf/xhtml 页面被多次调用
- node.js - 如何使用节点 js 发布图像
- java - 如何在每个端点调用上验证令牌,除了使用在 Tomcat 上运行的 javax.ws.rs 的一个?
- powershell - 使用 PowerShell 根据前 n 个字符删除重复项
- python - 从 sparse.coo_matrix 中采样 n 个零
- python-3.x - 如何将单个字典中的值与具有多个值的键进行比较