Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 为什么可以';对.keys()的结果调用.join()?_Javascript_Arrays_Key - Fatal编程技术网

Javascript 为什么可以';对.keys()的结果调用.join()?

Javascript 为什么可以';对.keys()的结果调用.join()?,javascript,arrays,key,Javascript,Arrays,Key,我在HTML文件中编写了以下JS代码: <script> x=[]; x["abc"]={ a:1, b:2 } x["def"]={ a:234, b:5655 } keyArrayX=x.keys(); console.log(keyArrayX.join()); </script> 但是keys()的结果是一个数组,所以我不明白这里出了什么问题。我的目标是返回数组中所有键的串联字符串,在本例中,它是: abc,def “但是ke

我在HTML文件中编写了以下JS代码:

<script>
x=[];
x["abc"]={
    a:1,
    b:2
}
x["def"]={
    a:234,
    b:5655
}

keyArrayX=x.keys();
console.log(keyArrayX.join());
</script>
但是
keys()
的结果是一个数组,所以我不明白这里出了什么问题。我的目标是返回数组中所有键的串联字符串,在本例中,它是:

abc,def
“但是keys()的结果是一个数组”

keys()
的返回值不是数组。据

返回值

一个新的数组迭代器对象

如果需要键,请使用
Object.keys()

设x=[];
x[“abc”]={
答:1,,
b:2
}
x[“def”]={
a:234,
b:5655
}
keyArrayX=对象。键(x);
log(keyarayx.join())请使用而不是
x.keys()

另外,
var x={}
对于字典也是正确的

设x={};
x[“abc”]={
答:1,,
b:2
}
x[“def”]={
a:234,
b:5655
}
设keyarayx=Object.keys(x);

log(keyarayx.join())您必须使用
Object.keys(x)

x=[];
x[“abc”]={
答:1,,
b:2
}
x[“def”]={
a:234,
b:5655
}
keyArrayX=对象。键(x);

log(keyarayx.join())是否确实要在数组而不是对象中设置键

x={}
x.abc = {};// will be the ideal way
x.def= {};
然后获取keys
Object。keys(x)
应该是获得键映射的方法

它应该记录
[“abc”,“def”]


对象。键
应在
x
上工作,无论其作为数组或对象进行赋值。

不要将非整数键添加到数组中。相反,将
x
设为对象
x={}
并使用
object.keys(x)
x={}
x.abc = {};// will be the ideal way
x.def= {};