我正在像这样检查null
:
假设c
为空。
if (a == null || b == null || c == null || d == null) { //short cirtcuit on the first null value (c)
let grabNullKey = a == null || b == null || c == null || d == null;
// I want this to grab the variable that is null, instead this logs `true`
console.log(grabNullKey)
我想将变量名(c
)登录到用户,是否有一个快捷方式来输出变量名而不是执行4条if语句?
答案 0 :(得分:4)
首先是坏消息,JavaScript doesn't allow you to print a variable name as a string。好消息是有办法解决。
要能够打印变量名,您将需要使用一个对象而不是一系列变量。因此,您将需要一个像这样的对象:
const variableObject = { a: true, b: true, c: null, d: true };
要找到第一个null值并将其打印出来,您需要遍历它们的键并找到第一个null值:
const variableObject = { a: true, b: true, c: null, d: true };
const variableNames = Object.keys(variableObject); // ['a', 'b', 'c', 'd']
const firstNullVar = variableNames.find((key) => variablesObject[key] === null); // 'c'
console.log(firstNullVar); // will print the string 'c'
如果所有变量都不是null
,则将打印undefined
,尽管解决起来很容易。
答案 1 :(得分:1)
制作对象文字并将变量作为键/值对分配给对象。将对象作为参数传递给以下演示中演示的函数:
function nulls(obj) {
return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}
@params对象[object]:
对象文字包含键(变量名a
,b
,c
,...)和值(变量值1
,2
,{ {1}},...)
null
返回键(变量名)的数组Object.keys(object)
返回键(变量名称)的数组,其值(.filter(key => object[key] === null)
)为object[key]
null
将键(变量名)数组作为字符串返回
.join(', ')
答案 2 :(得分:0)
认为这可以做到:
var itemsA = ['a','b','c','d'];
var valsA = [a,b,c,d];
var ind = valsA.indexOf(null);
if(ind != -1){
console.log(itemsA[ind]);
}
您还可以通过使用带有find或findIndex的JSON对象来做类似的事情