Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中检查数组或Json值_Javascript - Fatal编程技术网

在JavaScript中检查数组或Json值

在JavaScript中检查数组或Json值,javascript,Javascript,我试图检查是否存在某些单词,但就我所做的努力而言,它似乎不起作用 Chars = { ae: 'hello', oe: 'world', }; if(ae in Chars){ document.write('yes'); }else{ document.write('no'); } 我只是想知道,如果ae存在你可以这样做 if(Chars.ae){...} else {...} 你可以这么做 if(Chars.ae){...} else {...

我试图检查是否存在某些单词,但就我所做的努力而言,它似乎不起作用

 Chars = {
    ae: 'hello',
    oe: 'world',
};

if(ae in Chars){
    document.write('yes');
}else{
    document.write('no');
}   

我只是想知道,如果
ae
存在

你可以这样做

if(Chars.ae){...}
else {...}
你可以这么做

if(Chars.ae){...}
else {...}
试试这个:-

试试这个:-


如果它是编码时您知道的单个值,那么您可以这样做

if (Chars.ae !== undefined) {
    document.write('yes');
}
else {
    document.write('no');
}
如果您希望能够在运行时动态地计算出这些值,比如说您有一个表示要检查的属性的变量,那么您可以使用括号表示法

Chars = {
    ae: 'hello',
    oe: 'world',
    .. bunch of other properties
};

function doesCharEntryExist(entry) {
    return Chars[entry] !== undefined;
}

console.log(doesCharEntryExist('ae'));
console.log(doesCharEntryExist('oe'));
console.log(doesCharEntryExist('blah'));
输出

true
true
false

如果它是编码时您知道的单个值,那么您可以这样做

if (Chars.ae !== undefined) {
    document.write('yes');
}
else {
    document.write('no');
}
如果您希望能够在运行时动态地计算出这些值,比如说您有一个表示要检查的属性的变量,那么您可以使用括号表示法

Chars = {
    ae: 'hello',
    oe: 'world',
    .. bunch of other properties
};

function doesCharEntryExist(entry) {
    return Chars[entry] !== undefined;
}

console.log(doesCharEntryExist('ae'));
console.log(doesCharEntryExist('oe'));
console.log(doesCharEntryExist('blah'));
输出

true
true
false

要在操作符中使用
,您需要将
ae
置于引号中:

if ("ae" in Chars){
或者,您可以使用以下变量:

var valueToTest = "ae";
if (valueToTest in Chars) {
你在另一个答案下的评论中说,你有100多个值要检查。您没有说明如何管理这一百个,但假设它们在一个数组中,您可以使用一个循环:

var keyNamesToTest = ["ae", "xy", "zz", "oe"];
for (var i = 0; i < keyNamesToTest.length; i++) {
    if (keyNamesToTest[i] in Chars){
        document.write('yes');
        // key name exists - to get the value use Chars[keyNamesToTest[i]]
    }else{
        document.write('no');
    }
}
var-keyNamesToTest=[“ae”、“xy”、“zz”、“oe”];
对于(变量i=0;i

对于使用我介绍的测试数组显示的
Chars
对象,您将得到一个yes、两个no和另一个yes。

要在
操作符中使用
,您需要将
ae
放在引号中:

if ("ae" in Chars){
或者,您可以使用以下变量:

var valueToTest = "ae";
if (valueToTest in Chars) {
你在另一个答案下的评论中说,你有100多个值要检查。您没有说明如何管理这一百个,但假设它们在一个数组中,您可以使用一个循环:

var keyNamesToTest = ["ae", "xy", "zz", "oe"];
for (var i = 0; i < keyNamesToTest.length; i++) {
    if (keyNamesToTest[i] in Chars){
        document.write('yes');
        // key name exists - to get the value use Chars[keyNamesToTest[i]]
    }else{
        document.write('no');
    }
}
var-keyNamesToTest=[“ae”、“xy”、“zz”、“oe”];
对于(变量i=0;i

对于使用我介绍的测试数组显示的
Chars
对象,您会得到一个是、两个否和另一个是。

但是,我有100多个
ae
类值要检查,这是否可以通过循环来完成,而不是100个
if/elseif
switch()
?谢谢btw@Kuntilak一个对象不能有多个同名属性。最后一个将覆盖所有其他。我现在尝试了你的代码,它不起作用,你能再检查一下吗?@Kuntilak我不知道你是如何使用它的,请注意,只有当你事先知道与
ae
关联的值不能是空字符串(或其他虚假值)时,这才起作用。但是,我要检查的
ae
类值超过100个,这是否可以通过循环而不是100
if/elseif
switch()
?谢谢btw@Kuntilak一个对象不能有多个同名属性。最后一个将覆盖所有其他。我现在尝试了你的代码,它不起作用,你能再检查一下吗?@Kuntilak我不知道你是如何使用它的,请注意,只有当你事先知道与
ae
关联的值不能是空字符串(或其他伪值)时,这才有效。请注意
if(Chars.ae){
只有在您事先知道关联的值不能是空字符串(或其他伪值)时才起作用。我的意思是检查未定义的值,这是我在第二部分中做的。更新了第一部分。感谢您的提示!注意
if(Chars.ae){
只有在您事先知道关联的值不能是空字符串(或其他伪值)时才起作用。我的意思是检查未定义的值,这是我在第二部分中做的。更新了第一部分。感谢您的提示!请注意,您的代码不使用JSON-您拥有的是从对象文本创建的对象。(JSON是一种用于数据交换的字符串格式。)请注意,您的代码不使用JSON—您拥有的是一个从对象文本创建的对象。(JSON是用于数据交换的字符串格式。)