繁体   English   中英

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 )记录给用户,是否有一个快捷方式来输出变量名而不是执行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 ,尽管解决起来很容易。

创建对象文字并将变量作为键/值对分配给对象。 将对象作为参数传递给以下演示中演示的函数:

函数null(object)

function nulls(obj) {
  return (Object.keys(obj).filter(key => obj[key] === null)).join(', ');
}

@params对象[对象]:对象文字由密钥(变量名,的abc ,...)和值(可变值, 12null ,...)

  • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM