[英]Using Javascript (no jquery) to append data from 2 json strings - append is not a function
我有 formdata 字符串化,看起来像这样
{"name":"jack miller", "address":"123 main st"}
我想追加更多记录,但我得到“追加不是函数”
目标 {"name":"jack miller", "address":"123 main st"}, {"name":"new guy", "address":"new address"}
const s = this hold master data
const data = new FormData(e.target);
let m = JSON.stringify(Object.fromEntries(data));
let c = s.concat(m) // concat doesn't include a comma
let d = s.append(m) // append throw error of append is not a function
因此,虽然我倾向于使用 json 字符串,但我可以转换为对象或数组,然后如果更好或更容易附加等,则返回。
为什么附加不起作用?
更新:有表单数据的jsfiddle https://jsfiddle.net/fx6ebaj5
那个“m”是我需要添加数据的。
如何将对象添加到数组
let arr = [{"name":"jack miller", "address":"123 main st"}
];
不修改实际数组
let obj = {"name":"John", "address":"432 main st"}
let newArr = [...arr, obj];
console.log(newArr);
let appendArr=arr.concat(obj)
console.log(appendArr);
修改实际数组
arr.push(obj)
console.log(arr)
在 Javascript 中有两种复制对象的方法。 一种是浅拷贝,另一种是深拷贝。 复制对象的最佳方法是深度复制该功能,因为它不会影响对复制的功能所做的更改。
JSON.stringify turns an object into a string.
JSON.parse turns a string into an object.
将它们组合起来可以将一个对象变成一个字符串,然后反过来创建一个全新的数据结构。
nestedObject = [
{"name":"jack miller", "address":"123 main st"},
{"name":"jon", "address":"13 main st"}];
numbersCopy = JSON.parse(
JSON.stringify(nestedNumbers)
);
numbersCopy.push({"name":"Shawn", "address":"13 main st"});
console.log(nestedObject, numbersCopy);
[
{"name":"jack miller", "address":"123 main st"},
{"name":"jon", "address":"13 main st"}
];
[
{"name":"jack miller", "address":"123 main st"},
{"name":"jon", "address":"13 main st"},
{"name":"Shawn", "address":"13 main st"}
];
// These two arrays are completely separate!
因此,在您根据您的要求转换m
的情况下,我将执行以下步骤
const m = {hello: "hello", hi: "hi"}
let mArray = []
for (let [key, value] of Object.entries(m)) {
let obj = {}
obj.key = value
mArray.push(obj)
}
mArray.push({"name":"Shawn", "address":"13 main st"})
所以我将你的m
对象转换为一个数组。 它现在应该可以工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.