【发布时间】:2020-07-02 13:00:32
【问题描述】:
我一直在寻找使用 lodash 将项目添加到数组开头的方法。不幸的是,除了 lodash concat (到数组的末尾) 之外,我似乎找不到任何东西。 docs 似乎也没有说什么。
我得到以下代码:
const [collection, setCollection] = useState({
foo: [1, 2, 3]
});
const addToCollection = (key, items) => {
setCollection(prevCollection => ({
...prevCollection,
[key]: _.concat(prevCollection[key] || [], items)
}));
};
但这会将所有项目连接到最后。 我不想每次都对它们进行排序,因为这会使用不必要的处理能力,我更愿意将它们添加到开头,因为 API 总是推送已经排序的项目
我将如何做到这一点:
addToCollection('foo', [4, 5, 6]);
console.log(collection['foo']) // [4, 5, 6, 1, 2, 3];
而不是现在发生的事情:
addToCollection('foo', [4, 5, 6]);
console.log(collection['foo']) // [1, 2, 3, 4, 5, 6];
【问题讨论】:
-
const arr = [1,2,3]; const update = [4,5,6]; arr.unshift(...update); console.log(arr); -
这也可以在没有 loadash 的情况下完成。
标签: javascript lodash