请原谅我这个简单的问题 - 但我似乎错过了一些明显的东西。任何指针都会有很大的帮助。
我有一个类似
的JSONvar whatever = [{
"key1" : { "text" : "text1","group" : "1" },
"key2" : { "text" : "text2","group" : "2" },
"key3" : { "text" : "text3","group" : "3" }
}];
我正在尝试添加另一个对象(最好在开始时) - 但是无法让它工作。
var str = '{"text":"text0","group":"0"}';
var obj = JSON.parse(str);
whatever[0].put("key0",obj);
获得以下错误:
Uncaught TypeError: whatever[0].put is not a function
答案 0 :(得分:3)
对象上没有put
函数。使用属性而不是它。如果要分配给不存在的属性,它会创建一个新属性并将值赋给它。
whatever[0]["key0"] = obj;
在开始时优先与有关,对象属性没有顺序。这是一个错误的陈述。如果你想要排序,试着从对象数组的视图中思考而不是包含对象的对象数组。
代码示例
const whatever = [{
"key1" : { "text" : "text1","group" : "1" },
"key2" : { "text" : "text2","group" : "2" },
"key3" : { "text" : "text3","group" : "3" }
}];
const str = '{ "text" : "text0", "group" : "0" }';
const obj = JSON.parse(str);
whatever[0]["key0"] = obj;
console.log(whatever);
const whatever = [{
"key1" : { "text" : "text1","group" : "1" },
"key2" : { "text" : "text2","group" : "2" },
"key3" : { "text" : "text3","group" : "3" }
}];
const str = '{ "text" : "text0", "group" : "0" }';
const obj = JSON.parse(str);
Object.assign(whatever[0], { key0: obj }) // this will also change the object
console.log(whatever);
我的建议是使用一个对象数组,如果你想要一些订单。
const whatever = [
{ "text" : "text1","group" : "1" },
{ "text" : "text2","group" : "2" },
{ "text" : "text3","group" : "3" }
];
const str = '{ "text" : "text0", "group" : "0" }';
const obj = JSON.parse(str);
// Add to the start
whatever.unshift(obj);
console.log(whatever);
// Add to the end
whatever.push(obj);
console.log(whatever);
答案 1 :(得分:1)
也许你想要这样的东西
var whatever = [{
"key1" : { "text" : "text1","group" : "1" },
"key2" : { "text" : "text2","group" : "2" },
"key3" : { "text" : "text3","group" : "3" }
}];
Object.assign(whatever[0], {key4 : { "text" : "text4","group" : "4" }});
console.log(whatever);