Javascript Mapでワンステップで要素を見つけたり追加したりすることは可能ですか?Javascript ES6 Mapの要素を取得または設定しますか?
私は1つのステップ(キーの右の場所のために二回見て回避するため)で次の操作を実行したいと思います:代わりに、私は一度だけのキーを検索したい
// get the value if the key exists, set a default value otherwise
let aValue = aMap.get(aKey)
if(aValue == null) {
aMap.set(aKey, aDefaultValue)
}
。 C++では
、1コードは次のようになりますJavaScriptでstd::map::insert()かstd::map::lower_bound()
使用することができます。
let iterator = aMap.getPosition(aKey)
let aValue = aMap.getValue(iterator)
if(aValue == null)
{
aMap.setWithHint(aKey, aValue, iterator)
}
または
let aValue = aMap.getOrSet(aKey, aDefaultValue)
を私はそれが不可能であると仮定しますが、私は正しいことを確認したい。また、私はそれが重要な特徴である間になぜ不可能であるかを知ることに興味があります。
コード例で 'aKey'を2回検索する必要があることを正しく理解していますか? – nils
はい、これは問題です。 –
一般的に、これらの種類のマクロ最適化はJavaScriptで心配する必要はありません。現代のJavaScriptエンジンはそれらを処理する上で非常にうまく機能します。また、私が知る限り、マップを使用してこれを防ぐ方法はありません。 – nils