我的输入如下:
Input: keys = ['username', 'first-name', 'last-name', 'age', 'username'] and values = ['johndoe', 'John', 'Doe', 35, 'johnny']
而且我希望我的输出看起来像这样:
Output: {username: ['johndoe', 'johnny'], firstName: 'John', lastName: 'Doe', age: 35}
到目前为止,这是我的代码,我知道这不能完全解决具有'johndoe'
和'johnny'
问题的用户名:
function mergeArrays(keys, values) {
var obj = {};
if (keys.length != values.length)
return null;
for (var index in keys)
obj[keys[index]] = values[index];
return obj;
}
“ forEach”功能可能有用。
var keys = ['username', 'first-name', 'last-name', 'age', 'username']
var values = ['johndoe', 'John', 'Doe', 35, 'johnny']
var result = {}
keys.forEach(function(x, i) {
if (result[x]) {
if (typeof result[x] == 'Array') {result[x].push(values[i])}
else result[x] = [result[x],values[i]]
}
else result[x] = values[i]
})
console.log(result)
使用concat()
function mergeArrays(keys, values) {
var obj = {};
if (keys.length != values.length)
return null;
for (var index in keys) {
if (obj[keys[index]]) {
obj[keys[index]] = [].concat(obj[keys[index]], values[index])
} else {
obj[keys[index]] = values[index];
}
}
return obj;
}
var res = mergeArrays(['username', 'first-name', 'last-name', 'age', 'username'], ['johndoe', 'John', 'Doe', 35, 'johnny'])
console.log(res)
const keys = ['username', 'first-name', 'last-name', 'age', 'username'];
const values = ['johndoe', 'John', 'Doe', 35, 'johnny'];
const result = {};
keys.forEach((val, key) => {
if (!result[val]) {
result[val] = values[key];
} else if (Array.isArray(result[val])) {
result[val].push(values[key]);
} else {
result[val] = [result[val], values[key]];
}
});
console.log(result);
let keys = ['username', 'first-name', 'last-name', 'age', 'username'];
let values = ['johndoe', 'John', 'Doe', 35, 'johnny'];
let transformedData = keys.reduce((result,item,index)=>{
if (index>=values.length-1) return result;
result[item]= index===0 ? [values[0],values[values.length-1]] : values[index];
return result;
},{});
console.log(transformedData);
keys = ['username', 'first-name', 'last-name', 'age', 'username'];
values = ['johndoe', 'John', 'Doe', 35, 'johnny'];
function mergeArr(keys, values){
let result = {};
keys.forEach((key, i) => {
result[key] = values[i];
})
return result;
}
let result = mergeArr(keys, values);
console.log(result);