In bash one can escape arguments that contain whitespace.
foo \"a string\"
This also works for arguments to a command or function:
Here is a shorter version which does not require the use of a numeric index:
(example: building arguments to a find command)
find
dir=$1 shift for f in "$@" ; do args+=(-iname "*$f*") done find "$dir" "${args[@]}"