const file = "{id:1} * {id:3}";
let data = 0;
const list = [
{ id:1,value:10,key:1},
{ id:2,value:5,key:1},
{ id:3,value:4,key:1},
{ id:1,value:7,key:2},
{ id:2,value:4,key:2},
{ id:3,value:8,key:2},
我想要的是根据file将list中key相同的id=1和id=3的value相乘
结果为
[
{key:1,value: 40},
{key:2,value: 56},
]
你的表达式字符串应该是比较复杂的,类似
const file = "{id:1} - {id:3} + change({id:4} * {id:2}) - {id:5}"
所以id的值可能是任意正整数,所以问题中的计算应该仅仅是针对字符串中的
change
方法下面是我的实现:
1、将list的结果转换一下,便于取值计算
转换后的结构(listMap)是下面这样的
2、遍历listMap,将
{id:n}
这种转换成对应的value,并将方法(比如change)中的值计算成最后的结果最后得到的结果(result)大概是这样的