如何返回一个没有方括号的数组?



我使用这个代码来添加值到数组,但我记录了一些额外的方括号。我希望这个作为地图进入Firebase。下面是一些代码和日志示例。

const [playgroundFilters, setPlaygroundFilters] = useState([{ id: 1 }]);
const updateItem = (id, whichvalue, newvalue) => {
var index = playgroundFilters.findIndex((x) => x.id === id);
let g = playgroundFilters[index];
g[whichvalue] = newvalue;
if (index === -1) {
// handle error
console.log('no match');
} else
setPlaygroundFilters([
...playgroundFilters.slice(0, index),
g,
...playgroundFilters.slice(index + 1),
]);
console.log(playgroundFilters);
};
onPress={(value) => updateItem(1, 'PG - Fenced', value)}
options={[
{ label: 'No Fence', value: '' },
{ label: 'Partially', value: 'Partially fenced' },
{ label: 'Fully', value: 'Fully fenced' },
]}

以上代码记录如下:

LOG  [{"PG - Fenced": "Partially fenced", "id": 1}]

在firebase中显示为数组中的映射。我希望它像这样在firebase中显示为map

{"PG - Fenced": "Partially fenced", "id": 1}

将其转换为字符串并删除方括号只是将其作为字符串发送到Firebase而不是map。

初始状态useState([{ id: 1 }])为数组。在setPlaygroundFilters中对它执行的操作将生成一个数组。

你应该自己把它转换成一个映射。我不确定你想要什么样的输出,所以如果你分享它,它将更容易编写一个函数。

最新更新