我认为ES6模块导出总是不可变的,所以我对自己的行为感到非常困惑。我有一个简单的颜色数组,我想在Vue应用程序的多个组件中使用它。它位于自己的文件中,如下所示:
export const colors = [
'#ffb3ba',
'#ffdfba',
'#ffffba',
'#bae1ff',
]
然后我将其导入到我想要使用的组件中,如下所示:
import { colors } from '../assets/colors';
我有一个函数,用于拾取随机颜色,然后将其从列表中删除,这样就不会为同一组件再次拾取该颜色。是这样的。
descriptions.forEach(item => {
const colorIndex = Math.floor(Math.random() * colors.length);
item['color'] = colors[colorIndex];
colors.splice(colorIndex, 1);
});
这里的想法是从列表中选择一种随机颜色,为其指定一个描述,然后将其从列表中删除,以便在
forEach
.
问题是,它似乎正在从列表中永久删除颜色。因此,当我导入并尝试在另一个组件中使用数组时,其中没有颜色。我怎样才能使它成为
colors
每个组件的阵列?