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