<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
</head>
<body>
<div id="app"></div>
<script>
// 设置一个全局变量 方便修改
let g_name = 'ppp'
let inventory = [
{
name: 'apples', quantity: 2,
children: [{
name: 'apples1',
quantity: 10
}]
},
{
name: 'bananas', quantity: 0,
children: [{
name: 'bananas1',
quantity: 10
}]
},
{
name: 'cherries', quantity: 5,
children: [{
name: 'cherries1',
quantity: 10
}]
}
];
function findCherries(fruit) {
return fruit.name === g_name;
}
function editObject(v, items){
items.forEach(el => {
// 给这个全局变量赋值 改变 findCherries find里怎么传参?
g_name = v
let _name = items.find(findCherries)
if(_name != undefined){
// 模拟接口返回的数据
_name.children = {
name: 'qqqqqqqqqqqqqq',
quantity: 10
}
} else {
// 递归调用
if(el.children != undefined) {
editObject(v, el.children)
}
}
})
}
window.onload = function(){
editObject('apples1', inventory)
document.querySelector('#app').innerHTML = JSON.stringify(inventory)
}
</script>
</body>
</html>