如何返回对象中的属性并按顺序排列它们?

鉴于这两个数组:


var amounts = [9, 1, 8, 16, 5, 1, 42]

var animals = ["ducks", "elephants", "pangolins", "zebras", "giraffes", "penguins", "llamas"]

我必须编写一个函数,它接受两个变量并返回一个组合字符串。预期的输出是:


"9 ducks 1 elephants 8 pangolins 16 zebras 5 giraffes 1 penguins 42 llamas"


我创建了一个类似于预期字符串的对象。我现在需要按该顺序打印属性。


function animalsAmounts(arr1, arr2){

    let object = {};

    arr2.forEach((arr2, i) => object[arr2] = arr1[i]);

    return object

    let result = Object.keys(object).map(function(key) {

        return [Number(key), obj[key]];

    }); return result

}


console.log(animalsAmounts(amounts, animals))

它打印:


{ ducks: 9,

  elephants: 1,

  pangolins: 8,

  zebras: 16,

  giraffes: 5,

  penguins: 1,

  llamas: 42 }

我不知道如何将预期结果作为字符串返回。我尝试了各种方法来记录数量和动物,但只能返回一种或另一种。


江户川乱折腾
浏览 139回答 2
2回答

Smart猫小萌

Array.prototype.join()从数组的项目中创建一个字符串,将它们与您选择的任何内容连接起来。animals.map((a, i) => `${amounts[i]} ${a}`).join(" ")var amounts = [9, 1, 8, 16, 5, 1, 42]var animals = ["ducks", "elephants", "pangolins", "zebras", "giraffes", "penguins", "llamas"]console.log(animals.map((a, i) => `${amounts[i]} ${a}`).join(" "))

慕森卡

您可以对同一索引处的任意数组和映射值采用动态方法,然后再连接到单个字符串。var amounts = [9, 1, 8, 16, 5, 1, 42]var animals = ["ducks", "elephants", "pangolins", "zebras", "giraffes", "penguins", "llamas"],    result = [amounts, animals]        .reduce((r, a) => a.map((v, i) => (r[i] ? r[i] + ' ' : '') + v), [])        .join(' ');console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript