#javascript #ecmascript-6
#javascript #ecmascript-6
Вопрос:
Есть ли лучший способ реализовать это?
const a = _.get(obj, 'property');
const b = a ? [a] : [];
obj
является объектом, может иметь или не иметь property
. Если это произойдет, верните массив из одного элемента property
, иначе верните пустой массив.
Ответ №1:
const obj = {
prop: "hello"
}
const b = obj.hasOwnProperty("prop") ? [obj.prop] : [];
Ответ №2:
let obj = {}
console.log("when property is not present: ", obj["property"] || [])
obj = {property: ["hello"]}
console.log("when property is present: ", obj["property"] || [])
Комментарии:
1. Я не думаю, что это правильно, потому что, если свойство существует, им нужен массив, содержащий это свойство , а не только само свойство. В вашем ответе они получат только свойство.
2. пожалуйста, не стесняйтесь вносить изменения в этот ответ или публиковать свою версию ответа 🙂
Ответ №3:
Вы можете обернуть его в массив с фильтром ненулевого значения
const a = _.get(obj, 'property');
const b = [a].filter(Boolean);
const a1 = null
const a2 = 1
const res1 = [a1].filter(Boolean)
const res2 = [a2].filter(Boolean)
console.log(res1)
console.log(res2)