[{…}, {…}, {…}, {…}, {…}, {…}] 0: {chapter: {…}, gatherList: Array(1)} 1: {chapter: {…}, gatherList: Array(0)} 2: {chapter: {…}, gatherList: Array(26)} 3: {chapter: {…}, gatherList: Array(2)} 4: {chapter: {…}, gatherList: Array(0)} 根据以上回答,请看这段数据,这是通过const list = uni.getStorageSync('list')得到的,其中每一条中的chapter: {…}内都会含有一个branch与一个weight,其中当branch为0时,代表当前为主线,除0以外的都是支线,而weight则代表章节名,现在请根据之前的回答,在找到对应的主线与章节名时,得到const list = uni.getStorageSync('list')内与之对应的数据
时间: 2023-11-23 18:16:48 浏览: 73
好的,根据您的要求,我可以提供以下代码作为参考:
```
// 假设 list 是您从缓存中获取到的数据
console.log(list);
// 先根据主线和支线分开存储
let mainLine = [];
let subLines = [];
for (let i = 0; i < list.length; i++) {
let chapter = list[i].chapter;
if (chapter.branch === 0) {
mainLine.push(chapter);
} else {
subLines.push(chapter);
}
}
// 取出最新的主线
let latestMainLine = mainLine.pop();
// 找到最新主线对应的章节名
let latestMainLineWeight = latestMainLine.weight;
// 找到对应的数据
let data = null;
for (let i = 0; i < list.length; i++) {
let chapter = list[i].chapter;
if (chapter.branch === 0 && chapter.weight === latestMainLineWeight) {
data = list[i];
break;
}
}
console.log('最新的主线:', latestMainLine);
console.log('最新主线对应的章节名:', latestMainLineWeight);
console.log('对应的数据:', data);
```
这段代码中,我们首先遍历 list 中的每个元素,如果元素中的 chapter.branch 为 0,则将其 chapter 存入主线数组中,否则存入支线数组中。然后我们从主线数组中取出最后一个元素,即最新的主线。接着我们找到最新主线对应的章节名。最后我们遍历 list 中的每个元素,找到 chapter.branch 为 0 且 chapter.weight 等于最新主线对应的章节名的元素,即为对应的数据。最终我们将最新的主线、最新主线对应的章节名以及对应的数据打印出来。
阅读全文