javascript - 如何在对象中推送对象 - javascript
问题描述
我有两种方法可以在表单中填充相同的隐藏输入
- 使用导入 CSV 按钮
- 使用其他输入添加数据
当我使用第一个选项时,隐藏的输入充满了这个
例如:
正确的数据
[{"url":"http://www.restaurant.com","businessTypeId":"1"},{"url":"http://www.hotel.com","businessTypeId":"2"}]
如果我存储此数据,则可以正常工作
但是当我使用第二个选项时,输入充满了这个:
不正确的数据
{"url":"http://www.google.com","businessTypeId":"3"}
这是不正确的,因为它的开头和结尾都没有[括号]
另一个问题是当我插入数据并填充隐藏的输入(使用第一种方式)然后我尝试使用第二种方式添加更多数据时,我得到了这个
[{"url":"http://www.restaurant.com","businessTypeId":"1"},
{"url":"http://www.hotel.com","businessTypeId":"2"}],
{"url":"http://www.google.com","businessTypeId":"3"}
使用第一种方式插入前 2 个数据,使用第 2 种方式插入第三个数据
所有数据都应在括号内 []
如何“打开”括号以推送新数据并“关闭”它们?
在所有代码的开头,变量是这样开始的
let placesArray = [];
在第一种方法之后,使用此方法插入数据
placesArray.push(JSON.stringify(csvResult));
document.getElementById('places').value = placesArray;
他们,在第二种方法之后,使用这个插入数据
placesArray.push(JSON.stringify(placeData));
console.log('placeData datatable ' + placeData);
document.getElementById('places').value = placesArray;
注意:如果我使用第一种方法两次,括号是重复的,像这样
[{"url":"http://www.restaurant.com","businessTypeId":"1"}
{"url":"http://www.hotel.com","businessTypeId":"2"}],
[{"url":"http://www.beauty-shop.com","businessTypeId":"3"},
{"url":"http://www.dentist.com","businessTypeId":"5"}]
我绝对需要“打开”对象,以便我可以插入新数据而不是通过这个,我怎么能这样做?
在 console.log 中,我有这个 for placeData
[object Object]
,相同的结果 for csvResult
,两者都是对象
解决方案
您可以在设置每个值之前将数组变平十
placesArray = placesArray.flat()
document.getElementById('places').value = placesArray;
推荐阅读
- javascript - 如何在 HTML 输入文本占位符中显示特定的 JS 数组元素?
- laravel - 尝试使用laravel在excel中导出大数据时显示超时
- docker - gitlab ci pull_policy 用于仅限本地的 docker 图像
- python - 合并具有不均匀时间序列数据的数据帧
- android - 如何修复小米红米note 8 pro手机固件?
- flutter - 我卸载并重新安装了 VS Code Flutter 扩展,现在每次打开 VS Code 时,Flutter Daemon 都无法启动
- reactor-netty - (Reactor Netty) ConnectionProvider 每次创建新连接
- curl - Curl - 使用 -Q 对 FTPS 运行多个命令
- javascript - 获取假的 COCKTAIL API
- android - 从 Android 手机播放音频以从 Web 门户远程播放