Accord.Math.Wavelets中没有WaveletPacketTransform类怎么办
时间: 2023-06-05 07:05:50 浏览: 125
您可以考虑使用其他的WaveletTransform类来进行转换。例如,可以使用DiscreteWaveletTransform类或ContinuousWaveletTransform类来实现相应的操作。另外,也可以在Accord中尝试使用其他第三方库来实现类似的功能。
相关问题
async openDialog () { console.log(this.objFormData, '编辑信息') // 获取所有案由的违规条款选项和依据数据 const optionsMap = new Map() const basisMap = new Map() await Promise.all(this.objFormData.accordList.map(async accord => { // console.log(accord, '打印') const { data: optionData } = await getLawRules(accord.violationAccord) optionsMap.set(accord.violationAccord, lawTreeFilter(optionData)) basisMap.set(accord.violationAccord, accord.accordBasis) })) // 处理条例数据 const gistList = [] for (const accord of this.objFormData.accordList) { accord.accordDetail.forEach(item => { let labels = item.violationClause.split("-").map(str => str.trim()).filter(Boolean) // console.log(labels, 'labels') const illegalOptions = accord.illegalOptions || optionsMap.get(accord.violationAccord) const ruleIdList = [] let options = illegalOptions for (const label of labels) { const option = options.find(opt => opt.label === label) if (option) { ruleIdList.push(option.value) options = option.children } } // console.log(ruleIdList,'ruleIdList') // console.log(options,'options') // 添加选择的数据到数组中 // const selectedData = { // violationAccord: accord.violationAccord, // violationAccordText: accord.violationAccordText, // illegalValue: ruleIdList // } // gistList.push(selectedData) // 添加数据到回显数据中 const elRuleList = [{ illegalValue: ruleIdList }]; console.log(elRuleList,'hhhhhh') const echoData = { gistValue: accord.violationAccordText, ruleList: elRuleList, illegalOptions: illegalOptions, basis: basisMap.get(accord.violationAccord) } this.gistList.push(echoData) }) } },这个方法中,这个 accord.violationAccordText值相等的把他们对应的elRuleList这个值放到一个ruleList里面
好的,你可以使用 Map 数据结构来处理相同 violationAccordText 值的情况,将 echoData 存储在 Map 中,以 violationAccordText 作为键名。如果已经存在相同键名的数据,则将其 elRuleList 值合并到已存在数据的 ruleList 中。可以参考下面的代码:
```
async openDialog() {
console.log(this.objFormData, "编辑信息");
const optionsMap = new Map();
const basisMap = new Map();
await Promise.all(
this.objFormData.accordList.map(async (accord) => {
const { data: optionData } = await getLawRules(accord.violationAccord);
optionsMap.set(accord.violationAccord, lawTreeFilter(optionData));
basisMap.set(accord.violationAccord, accord.accordBasis);
})
);
const echoDataMap = new Map();
for (const accord of this.objFormData.accordList) {
accord.accordDetail.forEach((item) => {
const labels = item.violationClause
.split("-")
.map((str) => str.trim())
.filter(Boolean);
const illegalOptions =
accord.illegalOptions || optionsMap.get(accord.violationAccord);
const ruleIdList = [];
let options = illegalOptions;
for (const label of labels) {
const option = options.find((opt) => opt.label === label);
if (option) {
ruleIdList.push(option.value);
options = option.children;
}
}
const elRuleList = [{ illegalValue: ruleIdList }];
const echoData = {
gistValue: accord.violationAccordText,
ruleList: elRuleList,
illegalOptions: illegalOptions,
basis: basisMap.get(accord.violationAccord),
};
if (echoDataMap.has(accord.violationAccordText)) {
// 如果已经存在相同键名的数据,则将其 elRuleList 值合并到已存在数据的 ruleList 中
const existingEchoData = echoDataMap.get(accord.violationAccordText);
existingEchoData.ruleList.push(...elRuleList);
} else {
echoDataMap.set(accord.violationAccordText, echoData);
}
});
}
// 将 Map 中的数据转为数组
this.gistList = Array.from(echoDataMap.values());
},
```
希望这个修改能够帮到你。
其中 let elRuleList = [{ illegalValue: ruleIdList }]拿到的是每次的数据。但是在赋值给 const echoData = { gistValue: accord.violationAccordText, ruleList: elRuleList, illegalOptions: illegalOptions, basis: basisMap.get(accord.violationAccord) }是最后一次的数据,进行修改需要这个是动态的对应数据 const echoData = { gistValue: accord.violationAccordText, ruleList: elRuleList, illegalOptions: illegalOptions, basis: basisMap.get(accord.violationAccord) }
根据您提供的信息,您似乎遇到了JavaScript中的变量作用域问题。在您的代码中,您定义了一个变量`elRuleList`,并尝试将其赋值给`echoData`对象的`ruleList`属性。但是,由于JavaScript中的变量作用域是函数级别的,而不是块级别的,所以在您的代码中,`elRuleList`变量被定义在一个块级别(花括号包裹的代码块)中,而不是函数级别。因此,在循环中,每次迭代都会重新分配`elRuleList`变量,而最后一次分配将是在最后一次迭代中,因此`echoData`对象将始终使用最后一次分配的`elRuleList`值。
要解决这个问题,您可以将`elRuleList`变量定义在函数级别,这样它将在循环之外定义,然后在循环内将其修改为当前迭代的值。例如:
```
let elRuleList = []; // 将变量定义在函数级别
// 在循环内修改elRuleList值
for (let i = 0; i < list.length; i++) {
const ruleIdList = list[i].violationIdList;
elRuleList.push({ illegalValue: ruleIdList });
}
// 使用elRuleList变量创建echoData对象
const echoData = {
gistValue: accord.violationAccordText,
ruleList: elRuleList, // 使用最终的elRuleList值
illegalOptions: illegalOptions,
basis: basisMap.get(accord.violationAccord)
}
```
这样,`elRuleList`变量将始终使用正确的值,并将被正确地分配给`echoData`对象的`ruleList`属性。