Чтобы получить результат, который вы сказали, что вы хотите, вы должны:
Использовать map
для создания массива записей, а не для вывода этих строк.
Добавить string
в начало.
Превратить массив в строку с " - "
между записями, возможно, через join(" - ")
.
Я бы также рекомендовал передавать myObject
в count
в качестве аргумента, а не использовать его напрямую:
Живой пример:
const myObject = { "first": ["x","y", "z"], "second": ["a", "b"], "third": ["c"] }
const string = "String!";
const count = (obj) => {
const result = Object.entries(obj).map(([key, value]) =>
`${key} ${value.length > 1 ? ("x " + value.length) : ""} (${value})`
);
return result;
};
console.log(string + " " + count(myObject).join(" - "));
Или, если вы хотите сделать это в течение count
, также введите string
:
const myObject = { "first": ["x","y", "z"], "second": ["a", "b"], "third": ["c"] }
const string = "String!";
const count = (obj, str) => {
const result = Object.entries(obj).map(([key, value]) =>
`${key} ${value.length > 1 ? ("x " + value.length) : ""} (${value})`
);
return `${str} ${result.join(" - ")}`;
};
console.log(count(myObject, string));