var key = ['key', 'key', 'key'];var val = ['val1', 'val2', 'val3'];{ 'key': 'val1', 'key': 'val2', 'key': 'val3' }? { 'key': 'val1', 'key': 'val2', 'key': 'val3' } само по себе тождественно { 'key': 'val3' } Потому как интерпретатор проходит по всему выражению и по ключу видит указатель на область памяти только с 'val3' Как оказалось, исходное выражение является вполне корректным, но не оптимальным. var keys = ['key1', 'key2', 'key3'];
var values = ['val1', 'val2', 'val3'];
var keyValObj = {};
key.forEach(function(item, index) {
keyValObj[item] = values[index];
});
console.log(keyValObj);
obj = {
"key1":"val1",
"key2":"val2",
"key3":"val3"
}{ 'key': 'val1', 'key': 'val2', 'key': 'val3' } // Ваш пример .. Как вы доберётесь до нужного если надо будет достать по ключу ?