locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
43 lines (42 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.array_combine = array_combine;
function array_combine(keys, values) {
// discuss at: https://locutus.io/php/array_combine/
// original by: Kevin van Zonneveld (https://kvz.io)
// improved by: Brett Zamir (https://brett-zamir.me)
// example 1: array_combine([0,1,2], ['kevin','van','zonneveld'])
// returns 1: {0: 'kevin', 1: 'van', 2: 'zonneveld'}
const newArray = {};
let i = 0;
// input sanitation
// Only accept arrays or array-like objects
// Require arrays to have a count
if (typeof keys !== 'object') {
return false;
}
if (typeof values !== 'object') {
return false;
}
if (typeof keys.length !== 'number') {
return false;
}
if (typeof values.length !== 'number') {
return false;
}
if (!keys.length) {
return false;
}
// number of elements does not match
if (keys.length !== values.length) {
return false;
}
for (i = 0; i < keys.length; i++) {
const value = values[i];
if (typeof value === 'undefined') {
return false;
}
newArray[String(keys[i])] = value;
}
return newArray;
}