使用JavaScript对象作为数组 函数removeDupes(){ var out=[], obj={}; 对于(x=0;x
大家好,obj{}应该被声明为一个对象,但是为什么要将[]放在数组中并使用obj作为数组呢?谢谢使用JavaScript对象作为数组 函数removeDupes(){ var out=[], obj={}; 对于(x=0;x,javascript,arrays,object,Javascript,Arrays,Object,大家好,obj{}应该被声明为一个对象,但是为什么要将[]放在数组中并使用obj作为数组呢?谢谢someObject[“somePropertyName”]是访问对象属性的方式。(也可以使用someObject.somePropertyName,但前提是属性名称是有效标识符) 语法与数组没有特别的关系 数组只是一种对象类型,它包含一系列方法,这些方法以特殊方式处理整数属性名 (数字不是有效标识符,因此必须使用方括号语法访问名称为数字的属性)。someObject[“somePropertyNam
someObject[“somePropertyName”]
是访问对象属性的方式。(也可以使用someObject.somePropertyName
,但前提是属性名称是有效标识符)
语法与数组没有特别的关系
数组只是一种对象类型,它包含一系列方法,这些方法以特殊方式处理整数属性名
(数字不是有效标识符,因此必须使用方括号语法访问名称为数字的属性)。someObject[“somePropertyName”]
是访问对象属性的方式。(也可以使用someObject.somePropertyName
,但前提是属性名称是有效标识符)
语法与数组没有特别的关系
数组只是一种对象类型,它包含一系列方法,这些方法以特殊方式处理整数属性名
(数字不是有效的标识符,因此必须使用方括号语法来访问名称为数字的属性)。首先,让我们通过添加
intArray
作为参数并将循环迭代器声明为局部变量来修复removedDupes
函数:
function removeDupes() {
var out = [],
obj = {};
for (x = 0; x < intArray.length; x++) {
obj[intArray[x]] = 1;
}
for (x in obj) {
out.push(x);
}
return out;
}
现在,这是可行的,但它非常冗长。您可以通过使用返回Object.values(obj)替换第二个循环来缩短它代码>。甚至更短,使用:
首先,让我们通过添加intArray
作为参数并将循环迭代器声明为局部变量来修复removedDupes
函数:
function removeDupes() {
var out = [],
obj = {};
for (x = 0; x < intArray.length; x++) {
obj[intArray[x]] = 1;
}
for (x in obj) {
out.push(x);
}
return out;
}
现在,这是可行的,但它非常冗长。您可以通过使用返回Object.values(obj)替换第二个循环来缩短它代码>。甚至更短,使用:
没有给出冗长的回答。查看此网站,可能会帮助您更好地理解JS。对我来说的确如此。。你说的“工作”是什么意思?预期的结果是什么?为什么它不能工作?数组也只是具有键值对的对象。你使用数组作为数字索引,但没有给出冗长的答案。查看此网站,可能会帮助您更好地理解JS。对我来说的确如此。。你说的“工作”是什么意思?预期的结果是什么?为什么它不能工作?数组也只是具有键值对的对象。使用数组作为数值索引。
function removeDupes(intArray) {
var out = [],
obj = {};
for (var x = 0; x < intArray.length; x++) {
obj[intArray[x]] = intArray[x];
}
for (var x in obj) {
out.push(obj[x]);
}
return out;
}
function removeDupes(intArray) {
return [...new Set(intArray)];
}