将返回的对象从地图分散到一个对象中
Spread returned objects from map into one object
我正在尝试从我的循环中取回结果以分布到一个变量中
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
higher-order 方法总是会return 一个数组。如果你想把一个数组的对象组合成一个对象,reduce
higher-order 方法就是你要使用的方法。
const updateds = Array.from(document.querySelectorAll('.updated')).reduce((accumulator, item) => {
return {
...accumulator,
[item.dataset.slug]: item.dataset.position
};
}, {})
你可以使用Array.reduce
const updateds =Array.from(document.querySelectorAll('.updated')).map(item => {
return {[item.dataset.slug]: item.dataset.position};
})
;
const reducedResult=updateds.reduce((obj, Currentitem) =>Object.assign(obj,Currentitem), {})
我正在尝试从我的循环中取回结果以分布到一个变量中
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
higher-order 方法总是会return 一个数组。如果你想把一个数组的对象组合成一个对象,reduce
higher-order 方法就是你要使用的方法。
const updateds = Array.from(document.querySelectorAll('.updated')).reduce((accumulator, item) => {
return {
...accumulator,
[item.dataset.slug]: item.dataset.position
};
}, {})
你可以使用Array.reduce
const updateds =Array.from(document.querySelectorAll('.updated')).map(item => {
return {[item.dataset.slug]: item.dataset.position};
})
;
const reducedResult=updateds.reduce((obj, Currentitem) =>Object.assign(obj,Currentitem), {})