オブジェクトの変更と応答を同じ関数でやらないようにする

以下のような関数があるとします。

const set = (obj, property, value) => {
  //objにpropertyがあればvalueをセットしてtrueを返す。なければfalseを返す
}

この関数が以下のように使われたとします。

if(set(myObj, 'name', 'tami')){
  //do something
}

if文がtrueになるのはmyObjのnameプロパティがtamiである場合なのか、nameプロパティが正常にtamiになった場合でしょうか。

関数はなんらかの変更を行うか、なんらかの値を返すかのどちらか一方を行うようにします。

上の例の場合は、objにpropertyがあるかをチェックする関数と、propertyにvalueをセットする関数の二つに分割します。