函数不需要 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。
1、直接当做js文件引入 ,相应变量就能获取到;2、如果想读取本地json文件,需要环境,并且需要后台程序支持,不然出现安全性问题;
3、可以使用bloburl方式去获取文件,不需要后台支持,需要配环境 不然也有安全性问题;
用ajax请求这个json文件,换句话说,就是如下伪代码:
//请求/todo.json这个路径时,返回json文件
$.get('/todo.json').done(function(data){
do something with the data
})
对json数据进行增删改查,大部分是要对json数组进行 *** 作,我定义一个数组,进行 *** 作var list=[
{
id:1,
name:"张三",
age:12
},
{
id:2,
name:"李四",
age:21
},
{
id:3,
name:"王五",
age:31
}
]
这个json数组有三个对象,每个对象有三个属性,id,name,age
//增 *** 作,增加一个叫小胖的人
var obj={
id:4,
name:"小胖",
age:3
}
//push方法可以向数组进行增加 *** 作
list.push(obj)
//console.log会在浏览器f12时在控制太看到,建议用谷歌浏览器
console.log(obj)
//删 *** 作,删除刚刚叫小胖的人
//delnum用来记录要删除的人的索引
var delnum=-1
//用$.each进行循环,function里面的i,item是数组里每个对象的索引和具体对象,可以打印查看,方便理解
$.each(list,function(i,item){
console.log(i)
console.log(item)
if(item.name=="小胖"){
delnum=i
}
})
//splice方法表示从数组从索引delnum开始,删除1个对象
list.splice(delnum,1)
//打印一下
console.log(list)
//改 *** 作,修改所有人大于20岁的人,姓名前加一个“大”
//也是用$.each
$.each(list,function(i,item){
if(item.age>20){
item.name="大"+item.name
}
})
//查 *** 作,其实已经贯穿在上面了,查询所有大于20岁的人并打印出来
//用newlist记录查询的结果
var newlist=[]
//也是用$.each
$.each(list,function(i,item){
if(item.age>20){
//这一步不理解的,可以去看前面的增 *** 作
newlist.push(item)
}
})
//打印查询结果,会有姓名为李四和王五的数据出来(因为已经做了改 *** 作,其实应该是“大李四”和“大王五”)
console.log(newlist)
手敲得代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)