let List = [
	{ '4': 'dog' }, { '2': 'took' }, { '3': 'his' },
	{ '-2': 'Vatsan' }, { '5': 'for' }, { '6': 'a' }, { '12': 'spin' }
]

function sentence(List) {
	let obj = {};
	let str = '';
	for (let i = 0; i < List.length; i++) {
		Object.assign(obj, List[i])
	}
	let sortArr = Object.keys(obj).sort((a, b) => a - b);
	for (let i = 0; i < sortArr.length; i++) {
		str += obj[sortArr[i]] + ' '
	}
	return str.trim()
}


console.log(sentence(List))


Another way

const sentence = list =>
  list
    .sort((a, b) => Object.keys(a)[0] - Object.keys(b)[0])
    .map(item => Object.values(item)[0])
    .join(' ')

// Vatsan took his dog for a spin