js中如何向json数组添加元素

js中如何向json数组添加元素,第1张

var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"

var jsonarray = eval('('+jsonstr+')')

var arr =

{

"name" : $('#names').val(),

"value" : $('#values').val()

}

jsonarray.push(arr)

//2、

var json={}// 定义一个json对象

json.array1=["2","4"]// 增加一个新属性,此属性是数组

json.array1[json.array1.length]='6'// 数组追加一个元素

alert(json.array1)

函数不需要 return,因为 json 对象会被函数直接修改。

var str1 = {"name": "apple", "sex": "21"}

// 参数:prop = 属性,val = 值

function createJson(prop, val) {

// 如果 val 被忽略

if(typeof val === "undefined") {

// 删除属性

delete str1[prop]

}

else {

// 添加 或 修改

str1[prop] = val

}

}

下面为测试

// 无改动,输出 Object {name="apple", sex="21"}

console.log(str1)

// 添加属性 color,值为 red

createJson("color", "red")

// 输出 Object {name="apple", sex="21", color="red"}

console.log(str1)

// 修改属性 name 的值为 banana

createJson("name", "banana")

// 输出 Object {name="banana", sex="21", color="red"}

console.log(str1)

// 删除属性 sex

createJson("sex")

// 输出 Object {name="banana", color="red"}

console.log(str1)

函数应该有三个参数的,第一个为 json 对象,但应你要求,只写了两个,所以函数只能用于修改 str1。

=并不会把上一条覆盖,因为arr[i].name并不一样,相当于给json动态添加不同的属性。结果如下

当然,如果你数组中的那么如果会一样的话,那么就会被覆盖掉。如果是想要往一个新的对象上加,当作它的属性,那么属性名肯定是唯一的。如果你只是单纯的先把数组变成json串的话,可以使用JSON.stringify(),如下


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11831437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存