函数不需要 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。
json追加内容并且修改和删除 *** 作示例:
1、增加:
myObj.user='我是新增的用户-小明'
x +="<h1>增加后的数据</h1>"forin()
2、修改:
myObj.name= "我的网站"
x +="<h1>修改后的数据</h1>"forin()
3、删除:
delete myObj.sites
x +="<h1>删除后的数据</h1>"forin()
扩展资料
JS动态动态创建JSON数据字符串,并且可以删除添加修改
<script type="text/javascript">
//添加或者修改json数据
function setJson(jsonStr,name,value)
{
if(!jsonStr)jsonStr="{}"
var jsonObj = JSON.parse(jsonStr)
jsonObj[name] = value
return JSON.stringify(jsonObj)
}
//删除数据
function deleteJson(jsonStr,name)
{
if(!jsonStr)return null
var jsonObj = JSON.parse(jsonStr)
delete jsonObj[name]
return JSON.stringify(jsonObj)
}
//生成测试
var myjsonStr = setJson(null,"name","aaa")
alert(myjsonStr)
//添加测试
myjsonStr = setJson(myjsonStr,"age",18)
alert(myjsonStr)
//修改测试
myjsonStr = setJson(myjsonStr,"age",20)
alert(myjsonStr)
//删除测试
myjsonStr = deleteJson(myjsonStr,"age")
alert(myjsonStr)
</script>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)