Javascript jQuery附加到嵌套数组
是否可以使用Javascript jQuery附加到嵌套数组,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,是否可以使用push或类似方法以JSON对象中的特定嵌套数组为目标 下面是一个JSON对象的示例: var json = [ { "Id": 0, "Fruits": [{ "FruitId": 0, "Amount": null }] }, { "Id": 1, "Fruits": [{ "FruitId": 2, "Amount": { "IsNull": false, "Value": 50.0000 } }, { "FruitId": 8, "Amount
push
或类似方法以JSON对象中的特定嵌套数组为目标
下面是一个JSON对象的示例:
var json = [
{ "Id": 0, "Fruits": [{ "FruitId": 0, "Amount": null }] },
{ "Id": 1, "Fruits": [{ "FruitId": 2, "Amount": { "IsNull": false, "Value": 50.0000 } }, { "FruitId": 8, "Amount": { "IsNull":
false, "Value": 700.0000 } }]},
{ "Id": 2, "Fruits": [{ "FruitId": 0, "Amount": null }] },
{ "Id": 3, "Fruits": [{ "FruitId": 0, "Amount": null }] }
];
var output = JSON.stringify(json);
var fruitsArray = $.parseJSON(output);
我想在Id:2的水果中插入{“水果Id”:8,“金额”:50}
从我看到的示例中,repush
只需将一个对象推送到JSON对象的末尾,我希望能够在这里动态追加
任何帮助都将不胜感激:-)您首先必须找到索引,然后在该索引上插入数据
var json = [
{ "Id": 0, "Fruits": [{ "FruitId": 0, "Amount": null }] },
{ "Id": 1, "Fruits": [{ "FruitId": 2, "Amount": { "IsNull": false, "Value": 50.0000 } }, { "FruitId": 8, "Amount": { "IsNull": false, "Value": 700.0000 } }]},
{ "Id": 2, "Fruits": [{ "FruitId": 0, "Amount": null }] },
{ "Id": 3, "Fruits": [{ "FruitId": 0, "Amount": null }] }
];
var indexNo = json.findIndex(function(obj) {
return obj['Id'] == 2;
});
indexNo != -1 ? json[indexNo]['Fruits'].push({"FruitId":8,"Amount":5000}) : "Not found";
--------------使用for循环查找索引-----------
var json=[
{“Id”:0,“水果”:[{“FruitId”:0,“Amount”:null}]},
{“Id”:1,“水果”:[{“水果Id”:2,“金额”:{“IsNull”:false,“Value”:50.0000},{“水果Id”:8,“金额”:{“IsNull”:false,“Value”:700.0000}},
{“Id”:2,“Fruits”:[{“FruitId”:0,“Amount”:null}]},
{“Id”:3,“水果”:[{“水果Id”:0,“数量”:null}]}
];
var指数no=-1;
for(var i=0;i
和另一种方法:
$.each(json,function(ix,record) {
if(record.Id == 2)
{
record.Fruits.push({"FruitId":8,"Amount":50})
}
});
您可以使用函数
find
查找特定对象,然后将其添加到数组中
let数组=[{“Id”:0,“水果”:[{“FruitId”:0,“Amount”:null},{“Id”:1,“水果”:[{“FruitId”:2,“Amount”:{“IsNull”:false,“Value”:50.0000},{“FruitId”:8,“Amount”:{“IsNull”:false,“Value”:700.0000},{“Id”:2,“水果”:[{“水果Id”:0,“数量”:null}]},{“Id”:3,“水果”:[{“水果Id”:0,“数量”:null}]},
targetId=2,
对象={“水果ID”:8,“数量”:50},
target=array.find(({Id})=>Id==targetId);
if(target)target.Fruits=[…target.Fruits,object];
console.log(数组);
.as控制台包装{最大高度:100%!重要;顶部:0;}
是否要插入或替换?谢谢,但我收到0x800a01b6-JavaScript运行时错误:在尝试运行代码时,对象不支持属性或方法“findIndex”
。您的浏览器似乎不支持此功能…我想是较旧的版本!我已在for Loop的帮助下更新了索引所在的ans谢谢,that替换当前的水果数组,而不是追加。
$.each(json,function(ix,record) {
if(record.Id == 2)
{
record.Fruits.push({"FruitId":8,"Amount":50})
}
});