如何在对象中推送对象-javascript
我有两种方法在表单中填充相同的隐藏输入如何在对象中推送对象-javascript,javascript,object,add,Javascript,Object,Add,我有两种方法在表单中填充相同的隐藏输入 使用导入CSV按钮 使用其他输入添加数据 当我使用第一个选项时,隐藏的输入将填充以下内容 例如: 正确的数据 [{"url":"http://www.restaurant.com","businessTypeId":"1"},{"url":"http://www.hotel.com","businessTypeId":
[{"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"}
这是不正确的,因为它的开头和结尾都没有[括号]
另一个问题是,当我插入数据并填充隐藏的输入时(使用第一种方法),然后尝试使用第二种方法添加更多数据,
我明白了
[{"url":"http://www.restaurant.com","businessTypeId":"1"},
{"url":"http://www.hotel.com","businessTypeId":"2"}],
{"url":"http://www.google.com","businessTypeId":"3"}
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"}]
使用第一种方式插入前两个数据,使用第二种方式插入第三个数据
所有数据应在这些括号内[]
如何“打开”括号以推送新数据并“关闭”它们
在所有代码的开头,变量如下开始
[{"url":"http://www.restaurant.com","businessTypeId":"1"},
{"url":"http://www.hotel.com","businessTypeId":"2"}],
{"url":"http://www.google.com","businessTypeId":"3"}
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"}]
在第一种方法之后,使用该方法插入数据
[{"url":"http://www.restaurant.com","businessTypeId":"1"},
{"url":"http://www.hotel.com","businessTypeId":"2"}],
{"url":"http://www.google.com","businessTypeId":"3"}
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"}]
在第二种方法之后,使用该方法插入数据
[{"url":"http://www.restaurant.com","businessTypeId":"1"},
{"url":"http://www.hotel.com","businessTypeId":"2"}],
{"url":"http://www.google.com","businessTypeId":"3"}
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"}]
注意:如果我使用第一种方法两次,括号会重复,如下所示
[{"url":"http://www.restaurant.com","businessTypeId":"1"},
{"url":"http://www.hotel.com","businessTypeId":"2"}],
{"url":"http://www.google.com","businessTypeId":"3"}
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中,我为
placeData
[object object]
设置了这个,对于csvResult
的结果是相同的,两者都是object似乎csvResult
本身就是一个数组,当您将其字符串化并将其推送到placesArray
时,它看起来不像您想要的结果
我会选择这个
placesArray.push(…csvResult)//将每个'csvResult'项推入'placesArray`
document.getElementById('places')。value=JSON.stringify(placesArray)
您可以在设置每个值之前对数组进行十次排序
placesArray = placesArray.flat()
document.getElementById('places').value = placesArray;
已解决: 我删除了所有JSON.stringify,并在将数据推入输入时将其添加到每一行 像这样
document.getElementById('places').value = JSON.stringify(placesArray);
使用此选项时,在所有行中
感谢@hgb123
为了防止累积[括号[更多括号]],我使用了.flat()
csvResult是一个对象,因为当我看到控制台时,日志是[object object]placeData也是一个对象,在控制台的日志中,我有这个[object object]用于placeData。结果是一样的:(您的回答帮助我解决了其他问题,谢谢:)