ネイティブメソッドはありません。
ここでは、それを達成する2つの方法を見つけることができます
最初のメソッド はm1
配列の長さを検証し、一致しない場合は例外をスローします。
function m1(keys, values)
{
// in case the arrays have different sizes
if (keys.length != values.length)
throw new Error("Arrays are not of the same size");
var result = {};
for (var i in keys)
{
result[keys[i]] = values[i];
}
return result;
}
2 番目の方法 ではm2
、値よりも多くのキーを取得し、欠損値を null で埋めることができます。
function m2(keys, values)
{
// alternative handling for different sizes
if (keys.length < values.length)
throw new Error("You can't have more values than keys");
var result = {};
for (var i in keys)
{
var val = null;
if (i < values.length)
val = values[i];
result[keys[i]] = val;
}
return result;
}
どちらのメソッドもオブジェクトを返します。説明したとおりにオブジェクトを取得するには、次のようにします。
var x = {};
x.obj = m1([1, 2, 3], ["a", "b", "c"]);
コンパクト バージョン(検証なし)の場合は、次を使用できます。
function m(k,v){r={};for (i in k)r[k[i]]=v[i];return r}
使用法:
var x = { obj: m([1,2],["A","B"]) };
m
目的の関数名に変更します。
参照