javascript - Redux 更新数组内的数组
问题描述
目前我有这样的商店状态:
const initState = [
devices: {
id: 0,
data: []
}
]
我想在数据数组中插入一个字符串。如果数组达到一定长度,清除它。我怎样才能做到这一点?这是我目前拥有的,但它不起作用
return state.map((device) =>
{
if (device.instanceId !== action.payload.instanceId)
{
return device;
}
else
{
if (device.bytestreamData.length < CACHE_SIZE)
{
var newArray = [...device.bytestreamData];
newArray.push(action.payload.bytestreamData);
return newArray;
}
else
{
var newArray = [...device.bytestreamData];
newArray.length = 0;
newArray.push(action.payload.bytestreamData);
return newArray;
}
}
});
非常感谢
解决方案
我假设您想在达到数组的最大大小时将新字符串添加到空数组中
if (device.bytestreamData.length === CACHE_SIZE) {
var newArray = [];
newArray.push(action.payload.bytestreamData);
return newArray;
} else {
var newArray = device.bytestreamData.slice();
newArray.push(action.payload.bytestreamData);
return newArray;
}
推荐阅读
- c - 带有 FIFO 的 Posix 信号量无法正常工作
- android - 与设备相比显示不同的预览
- python - python,gurobi:有效地添加约束
- sql - Oracle SQL - 如何从其他表中选择具有 0 个或多个值的表
- node.js - 如何使用 Azure Functions 设置多个 cookie?
- ruby - 根据传入的值重新排序数组
- ios - 在 2 个白色 ViewController 之间转换时,Crossfade 过渡变为黑色
- grails - 我可以将占位符文本添加到 Groovy 文本字段 (g:textField) 中吗?
- azure - ping 新创建的 Azure 静态网站时丢失 100%
- mysql - 时间序列数据库中的标记差距和新条目 - 客户流失和新客户