Альтернативный метод будет таким, как показано ниже.Это повторяет количество раз a.length, получает значение a и добавляет его в качестве ключа к c, где значением ключа является значение из b.Вот описание того, как это работает:
Для каждого элемента в a: если в c нет элемента с именем ключа a [i], создайте ключ и установите для него значение из b [i],Если элемент уже существует в c (тогда ключ должен представлять массив, а не один элемент), если это значение является единственным элементом, сделать его массивом и заново вставить это первое значение, а затем в любом случае нажатьновый элемент в этом массиве.
let a = ['name', 'options', 'address', 'options', 'gender', 'options','options'];
let b = ['john doe', 'a', 'india', 'b', 'male', 'c', 'd'];
let c = {};
for (let i=0; i<a.length; i++) {
if (typeof c[a[i]] === 'undefined') {
c[a[i]] = b[i];
} else {
if (c[a[i]] instanceof Array === false) {
c[a[i]] = [c[a[i]]];
}
c[a[i]].push(b[i]);
}
}
console.log(c);