JavaScriptで配列内のオブジェクトの値を検索して置換する方法


方法1: forループを使用した方法

function replaceValue(array, searchKey, searchValue, replaceKey, replaceValue) {
  for (let i = 0; i < array.length; i++) {
    if (array[i][searchKey] === searchValue) {
      array[i][replaceKey] = replaceValue;
    }
  }
}
// 使用例
const data = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];
replaceValue(data, 'name', 'Jane', 'name', 'Janet');
console.log(data);

方法2: Array.map()を使用した方法

function replaceValue(array, searchKey, searchValue, replaceKey, replaceValue) {
  return array.map(item => {
    if (item[searchKey] === searchValue) {
      return { ...item, [replaceKey]: replaceValue };
    }
    return item;
  });
}
// 使用例
const data = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];
const updatedData = replaceValue(data, 'name', 'Jane', 'name', 'Janet');
console.log(updatedData);

方法3: Array.forEach()を使用した方法

function replaceValue(array, searchKey, searchValue, replaceKey, replaceValue) {
  array.forEach(item => {
    if (item[searchKey] === searchValue) {
      item[replaceKey] = replaceValue;
    }
  });
}
// 使用例
const data = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];
replaceValue(data, 'name', 'Jane', 'name', 'Janet');
console.log(data);

これらの方法は、配列内のオブジェクトを順番に検索し、指定された値と一致する場合に値を置換します。ご参考ください。