({slot, name, displayName, nbt:{value:{display:{value:{Name:{value}}}}}})
, деструктуризация объектов.({slot, name, displayName, nbt})
и вручную проверять на каждом шаге:+ (nbt?.value?.display?.value?.Name?.value || '')
+ (nbt && nbt.value && nbt.value.display && nbt.value.display.value && nbt.value.display.value.Name && nbt.value.display.value.Name.value || '')
items.reduce((columns, item) => {
for(const key in columns)
columns[key].push(item[key]);
return columns;
}, {
slot: [],
name: [],
displayName: []
})
items.map(({slot, name, displayName}) => [slot, name, displayName])
function capitalize(phrase) {
return phrase
.split(' ')
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
.join(' ');
}
items.map(({slot, name, displayName}) => `${slot}. ${capitalize(name)}(${capitalize(displayName)})`)
потому что он стоял перед sassXD
a.setAttribute('download','')
после a.href = ...
;