你每次循环都重新设置 allData,这会让之前的匹配结果被覆盖。 search(value) { if (value === '') { this.$message.error('请输入有效值!'); return; } const matchingTabs = this.tabList.filter(item => item.sn === value); const matchingData = this.allData.filter(item => { return matchingTabs.some(tab => tab.station === item.title); }); this.tabList = matchingTabs; this.allData = matchingData; this.getAllData(); }