【问题标题】:How do I return an array without square brackets?如何返回没有方括号的数组?
【发布时间】:2021-10-06 10:17:32
【问题描述】:

我正在使用此代码向数组添加值,但我正在记录一些额外的方括号。 我希望它作为地图进入 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 中显示为地图

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

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

【问题讨论】:

    标签: javascript arrays firebase react-native


    【解决方案1】:

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

    您应该自己将其转换为地图。我不确定你想要什么样的输出,所以如果你分享它,为此编写一个函数会更容易。

    【讨论】:

    • 我要查找的输出应该是{"PG - Fenced": "Partially fenced", "id": 1}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多