在 javascript 中,我需要检查 if 语句中的值是否存在。问题是 0 可以是可接受的值之一。所以当我这样做时
if(!val) {
return true
}
return false
Run Code Online (Sandbox Code Playgroud)
问题是 Javascript 计算 !0 = false
这是我想要的测试用例:
val = 0 // true
val = 91 // true
val = null // false
val = undefined = false
Run Code Online (Sandbox Code Playgroud)
基本上检查是否为 null 但包括 0。不知道如何执行此操作:/
我有一个需要转换为数组的对象。这是对象:
const dogCounts: {
maltese: 4,
poodle: 2,
labrador: 10,
corso: 0
}
Run Code Online (Sandbox Code Playgroud)
我通过 props 将其发送到组件,并且有一个 useMemo 挂钩将其转换为如下结构: [ [maltese, 4], [poodle, 2], ... ]
const formatDogCounts = useMemo(() => {
const z = Object.keys(dogCounts || {})?.map(i => {
if (dogCounts[i] === 0) return; // Don't add it to map and skip it
return [i, dogCounts[i]]
})
}, [dogCounts])
Run Code Online (Sandbox Code Playgroud)
当数字为零时,我不想将其添加到 formatDogCounts 变量中。我上面的内容不符合 eslints 规则。Arrow function expected no return value.eslintconsistent-return。
另外,我将 {} 放在 object.keys 中,以防计数尚未加载时是否有更干净的方法来进行 null 检查?
我有一个对象数组:
const arr = [
{
name: 'John',
money: 45
},
{
name: 'Lui',
money: 65
},
{
name: 'Kegan',
money: 100
},
... isNewUser ? {
name: 'Eric',
money: 90
} : {}
]
Run Code Online (Sandbox Code Playgroud)
当声明不使用 时,我需要有条件地添加该对象array.push。我尝试过使用 && 运算符,但出现错误。isNewUser是一个布尔变量,如果为 true,数组应该有 4 个项目,否则数组应该只有 3 个,其中不包括 newUser 对象
我有一系列汽车,我需要检查汽车是否存在于对象中。
const cars = ["mustang", 'sonata'];
const carsObj = {
ford: "mustang",
audi: 'r8',
tesla: 'model 3'
};
Run Code Online (Sandbox Code Playgroud)
到目前为止我所做的是检查,但我只知道如何使用对象中存在的数组中的第一个元素来执行此操作。如果可能,我正在寻找最快的方法。
carsObj[Object.keys(carsObj).find(key => carsObj[key] === cars[0])];
Run Code Online (Sandbox Code Playgroud)
这应该返回,mustang因为它在数组和对象中
我需要检查整个数组,而不是检查汽车 [0]。此外,阵列永远不会那么大。最多可能是 5 个元素。循环遍历对象的数组是否更好?