I found a behavior of readarray that I can't get to the bottom of myself.
The following code:
readarray array < <(echo -e "Jenny\nJane\nJessica")
echo "* Not enclosed:"
for ((i=0; i<${#array[@]}; i++)); do
    echo ${array[$i]}
done
echo "* Enclosed:"
for ((i=0; i<${#array[@]}; i++)); do
    echo "${array[$i]}"
done
Produces the following output:
* Not enclosed:
Jenny
Jane
Jessica
* Enclosed:
Jenny
Jane
Jessica
Why exactly do elements become spaced out when they are enclosed with " " like this?
Even if I replaced echo "${array[$i]}" with a variable like this:
foo=${array[$i]}
echo "$foo"
The output still becomes spaced out.
But note that if I declared the array in the usual fashion array=("Jenny" "Jane "Jessica") no spacing is inserted regardless of quotes.
Reason why this is causing problems because I'm looping through an array and need to use the element inside a sentence and echo it. For example:
readarray array < <(echo -e "Jenny\nJane\nJessica")
for ((i=0; i<${#array[@]}; i++)); do
    echo "Hello, ${array[$i]}!"
done
However ${array[$i]} is in-between " " so \n gets inserted and the output becomes:
Hello, Jenny
!
Hello, Jane
!
Hello, Jessica
!
    
-tto readarray help?echo ${ary[sub]}orecho $varwithout quotes (and without fiddled IFS) removes any leading, trailing, or consecutive whitespace, regardless of where it came from.