我一直在寻找使用 lodash 将项目添加到数组开头的方法。不幸的是,除了 lodash concat (to the end of the array)之外,我似乎找不到其他任何东西。文档似乎也没有提及任何相关内容。
我得到以下代码:
const [collection, setCollection] = useState({
foo: [1, 2, 3]
});
const addToCollection = (key, items) => {
setCollection(prevCollection => ({
...prevCollection,
[key]: _.concat(prevCollection[key] || [], items)
}));
};
Run Code Online (Sandbox Code Playgroud)
但这会将所有项目连接到最后。我不想每次都对它们进行排序,因为这会使用不必要的处理能力,我宁愿将它们添加到开头,因为 API 总是推送已经排序的项目
我将如何实现这一点:
addToCollection('foo', [4, 5, 6]);
console.log(collection['foo']) // [4, 5, 6, 1, 2, 3];
Run Code Online (Sandbox Code Playgroud)
而不是现在发生的事情:
addToCollection('foo', [4, 5, 6]);
console.log(collection['foo']) // [1, 2, 3, 4, 5, 6];
Run Code Online (Sandbox Code Playgroud)