[英]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
)记录给用户,是否有一个快捷方式来输出变量名而不是执行4 if语句?
首先是个坏消息, JavaScript不允许您将变量名打印为字符串 。 好消息是有办法解决。
为了能够打印变量名,您将需要使用一个对象而不是一系列变量。 因此,您将需要一个这样的对象:
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
,尽管解决起来很容易。
创建对象文字并将变量作为键/值对分配给对象。 将对象作为参数传递给以下演示中演示的函数:
function nulls(obj) {
return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}
@params对象[对象]:对象文字由密钥(变量名,的a
, b
, c
,...)和值(可变值, 1
, 2
, null
,...)
Object.keys(object)
返回一个键数组(变量名) .filter(key => object[key] === null)
返回一个键(变量名)数组,其值( object[key]
)为null
.join(', ')
以字符串形式返回键数组(变量名) 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));
认为这可以做到:
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对象来执行类似的操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.