//数组
const syObj=["0-0-1-2"]
//需要将数组转化成索引,像这样的格式:
[0][0][1][2]
//目的是为了更新树形数组中的某个子节点参数
const newArr=[
"children":"["长乐村","小河村","南闸村"]"
]
treeArr[0][0][1][2]=newArr
spli和reduce函数不是比楼上的eval更简便吗
const syObj=["0-0-1-2"];
const indexArr=syObj[0].split("-").reduce((acc,cur)=>[acc[cur]], newArr);
//可以使用split方法将字符串拆分成数组
const syArr = syObj[0].split("-"); //["0", "0", "1", "2"]
//然后可以使用reduce方法将数组转化成索引
const indexArr = syArr.reduce((acc, cur) => {
acc.push(`[${cur}]`);
return acc;
}, []);
//将索引数组转化成字符串
const indexStr = indexArr.join("");
//使用eval方法执行字符串,更新树形数组中的子节点参数
const updateStr = `treeArr${indexStr} = ${JSON.stringify(newArr)}`;
eval(updateStr);
使用split方法将字符串拆分成数组,然后遍历数组,将每个元素转换为数字索引,最后使用reduce方法将数组索引转换为对应的值。
const syObj=["0-0-1-2"];
const indexArr = syObj[0].split('-').map(Number);
const result = indexArr.reduce((acc, cur) => acc[cur], treeArr);
result.children = ["长乐村","小河村","南闸村"];