You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改搜索函数使其仅显示特定用户的记录?

解决方案

要实现仅显示同时匹配当前用户名(C列)和搜索值的行,只需在搜索逻辑中同时加入用户校验和搜索值校验即可,修改后的代码如下:

function displayOwnRecordSearch(currentUser, searchedValue){
  var spreadsheetId   = "";
  var sheetName = "";  
  var column = 3; // C列

  var [, ...data] = Sheets.Spreadsheets.Values.get(spreadsheetId, sheetName).values;
  var arr = [];

  // 校验当前用户的通用函数
  const validateUser = (user) => {
    let regex = new RegExp(currentUser, 'i');
    return regex.test(user);
  };

  if(searchedValue !== undefined) {
    // 校验搜索值的函数
    const validateSearch = (query) => {
      let regex = new RegExp(searchedValue, 'i');
      return regex.test(query);
    };
    data.forEach(d => {
      // 同时满足:当前用户匹配C列 + 搜索值匹配行内内容
      if (validateUser(d[column - 1]) && validateSearch(d)) {
        arr.push(d);
      }
    });
  } else {
    // 无搜索值时,仅显示当前用户的记录
    data.forEach(d => {
      if (validateUser(d[column - 1])) {
        arr.push(d);
      }
    });
  }

  return arr;
}

修改说明

  1. 抽离了校验当前用户的通用函数validateUser,避免重复代码
  2. 在搜索分支中新增validateUser(d[column - 1])校验,确保只有当前用户的记录才会被纳入筛选范围
  3. 保留原有的不区分大小写正则匹配逻辑,仅当行数据同时满足用户匹配和搜索值匹配时,才会被加入结果数组

内容的提问来源于stack exchange,提问作者codeTester-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:55:28