const fields = [{ name: "email", value: "" }]; const hiddenFields = [ { name: "lists", value: "waitlist" }, { name: "source", value: "twitter" }, { name: "medium", value: "social" }, { name: "campaign", value: "header" }, { name: "campaign_type", value: "website" }, ]; const urlParams = new URLSearchParams(window.location.search); console.log( fields.concat(hiddenFields).reduce( (obj, field) => Object.assign({}, obj, { [field.name]: urlParams.has(field.name) ? urlParams.get(field.name) : field.value || "", }), {} ) );