Вам также нужно выполнить итерацию arr
, чтобы заполнить все элементы.
const
arr = [{ name: 'name1', item: [] }, { name: 'name2', item: [] }],
routes = [{ methods: { get: { title: 'get users' } } }, { methods: { get: { title: 'get user id' }, delete: {} } }, ];
arr.forEach(({ item }) =>
routes.forEach(({ methods }) => {
for (const method in methods) {
let { title: name = 'Not specified' } = methods[method];
item.push({ name, request: { method } });
}
})
);
console.log(arr);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Хотя IItem
трудно читать, он соответствует некоторым существующим интерфейсам "II
":
Просто IItem
. Нет необходимости в исключении.
Интерфейсы начинаются с двух заглавных букв (I [A-Z]), которые идентифицируют их как интерфейс. Таким образом, Item
не является интерфейсом, но IItem
является.
Вы можете видеть, что парни из MS используют System.ComponentModel.IItemProperties
Edit 2016/08/12: Первоначально я предоставил этот ответ как альтернативный взгляд на соглашения об именах. Мой повседневный C# теперь использует I
-префикс, чтобы сохранить идиоматичность и уменьшить когнитивную нагрузку за счет согласованности. Я думаю, что последовательность важнее вопросов, которые я поднимаю ниже. Короче говоря, придерживайтесь соглашений кодовой базы, в которой вы работаете.
Just Item
. Не потому, что интерфейс начинается с I
, а скорее потому, что префикс классов с идентифицирующими буквами не нужен. Украшать интерфейсы с помощью I
так же уродливо, как ставить C
перед вашими конкретными именами классов (а-ля MFC). Префикс типов с чем угодно так же плох, как и использование венгерской нотации.
Вы можете возразить, что это на самом деле дает вам семантическую ценность, но я в этом не убежден. У меня современная IDE, и мне не нужны более сложные имена типов.
Согласно соглашению об именах .Net перед именем интерфейса должна стоять заглавная буква «I», за которой следует имя интерфейса в регистре Camel.
Поэтому я предлагаю вам назвать элемент интерфейса следующим образом:
IItem
Нет необходимости упоминать «Интерфейс» в конце, потому что буква «I» в самом начале говорит о том, что это Интерфейс, и не требует явного упоминания.