JS将一个数组转成数组索引

//数组
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 = ["长乐村","小河村","南闸村"];