Javascript获取短路变量名
Javascript get short circuit variable name
我正在这样检查 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
),有没有shorthand输出变量名而不是做4个if语句?
首先是坏消息,JavaScript doesn't allow you to print a variable name as a string。好消息是有办法解决它。
为了能够打印变量名,您将需要使用一个对象而不是一系列变量。所以你需要一个像这样的对象:
const variableObject = { a: true, b: true, c: null, d: true };
要找到第一个空值并打印它,您需要遍历它们的键并找到第一个为空的值:
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'
如果 none 个变量是 null
,这将打印 undefined
,尽管绕过它很容易。
认为这可以做到:
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 对象来做类似的事情
创建对象字面量并将变量作为 key/value 对分配给对象。将对象作为参数传递给以下演示中演示的函数:
函数空值(对象)
function nulls(obj) {
return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}
@params 对象[对象]:
Object Literal由键(变量名,a
,b
,c
,...)和值(变量值,1
,2
,null
,...)
Object.keys(object)
returns键数组(变量名)
.filter(key => object[key] === null)
returns 具有值 (object[key]
) 共 null
.join(', ')
returns 键数组(变量名)作为字符串
function nulls(obj) {
return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}
let x = {
a: 1,
b: 2,
c: null,
d: 4,
e: null,
f: 6,
g: null
};
console.log(nulls(x));
我正在这样检查 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
),有没有shorthand输出变量名而不是做4个if语句?
首先是坏消息,JavaScript doesn't allow you to print a variable name as a string。好消息是有办法解决它。
为了能够打印变量名,您将需要使用一个对象而不是一系列变量。所以你需要一个像这样的对象:
const variableObject = { a: true, b: true, c: null, d: true };
要找到第一个空值并打印它,您需要遍历它们的键并找到第一个为空的值:
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'
如果 none 个变量是 null
,这将打印 undefined
,尽管绕过它很容易。
认为这可以做到:
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 对象来做类似的事情创建对象字面量并将变量作为 key/value 对分配给对象。将对象作为参数传递给以下演示中演示的函数:
函数空值(对象)
function nulls(obj) {
return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}
@params 对象[对象]:
Object Literal由键(变量名,a
,b
,c
,...)和值(变量值,1
,2
,null
,...)
Object.keys(object)
returns键数组(变量名).filter(key => object[key] === null)
returns 具有值 (object[key]
) 共null
.join(', ')
returns 键数组(变量名)作为字符串
function nulls(obj) {
return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}
let x = {
a: 1,
b: 2,
c: null,
d: 4,
e: null,
f: 6,
g: null
};
console.log(nulls(x));