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

如何用JS/jQuery将非空多语言字段内容复制到空字段?

实现英文非空字段同步至空法文字段

需求明确:当对象中title_en、description_en这类英文字段非空时,将内容复制到对应为空的title_fr、description_fr法文字段中。以下是几种实用实现方式:

原始数据定义

const originalData = {
  "id": "2331",
  "title_en" : "Something great",
  "title_fr": "",
  "description_en" : "Lorem ipsum something etc.",
  "description_fr": "",
  "tag_en": "im filled",
  "tag_fr": "another filled"
};

方法一:逐个字段判断赋值(适合字段数量少的场景)

直接针对目标字段做条件判断,逻辑直观:

// 处理title字段
if (originalData.title_en && !originalData.title_fr) {
  originalData.title_fr = originalData.title_en;
}

// 处理description字段
if (originalData.description_en && !originalData.description_fr) {
  originalData.description_fr = originalData.description_en;
}

console.log(originalData); // 输出目标数据

方法二:批量映射处理(适合字段多、扩展性强的场景)

通过定义字段映射关系,批量遍历处理,新增字段只需更新映射数组:

// 定义需要同步的字段配对:[英文键名, 法文键名]
const fieldPairs = [
  ["title_en", "title_fr"],
  ["description_en", "description_fr"]
];

fieldPairs.forEach(([enKey, frKey]) => {
  // 校验英文字段非空、法文字段为空
  if (originalData[enKey] && !originalData[frKey]) {
    originalData[frKey] = originalData[enKey];
  }
});

console.log(originalData); // 输出目标数据

jQuery版本(逻辑与原生一致)

如果项目依赖jQuery,可使用$.each替代原生遍历:

const fieldPairs = [["title_en", "title_fr"], ["description_en", "description_fr"]];

$.each(fieldPairs, function(_, pair) {
  const [enKey, frKey] = pair;
  if (originalData[enKey] && !originalData[frKey]) {
    originalData[frKey] = originalData[enKey];
  }
});

console.log(originalData);

内容的提问来源于stack exchange,提问作者Under Voltage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:40:29