因此,这小段代码采用整数数组myList
,并在整数字符串成为A
的键时使它们成为字符串。为什么? Python很高兴它们可以保留整数,但是Javascript似乎只希望将字符串用作键。
pairs
产生:
var pairs = {};
for(var i=0; i < A.length; ++i) {
var value = A[i];
if(pairs[value]) {
delete pairs[value];
} else {
pairs[value] = true;
}
}
console.log(A, pairs)
将所有键添加到pairs对象时,它们都是整数,但是当用作键时,它们将成为字符串。这与python有很大的不同
答案 0 :(得分:0)
javascript中的所有对象键都是字符串。可以证明这一点:
let obj = {
1: 'one'
}
然后
Object.keys(obj).forEach(key => {
console.log(key, typeof key)
})
您会得到
1 string
答案 1 :(得分:0)
根据定义,对象键始终是字符串(或符号),如果您将其他内容用作键,它将被转换为字符串。要在JS中创建Map,可以使用postgresIsUp = False
while not postgresIsUp:
try:
pingPostgres()
postgresIsUp = True
except PingError:
print("postgres is not yet running")
或Map
在这种情况下就足够了:
Set
答案 2 :(得分:0)
在Javascript @if($errors)
{{var_dump(Session::all())}}
@endif
中是Object类型的文字表达式。根据{{3}}对象将字符串名称映射为值。
可以接受任意值作为键的数据类型为the documentation。
答案 3 :(得分:0)
对象键始终是字符串。例如
let x = {};
x.a = 1;
x[2] = 2;
x[x] = 3;
console.log(x);
另一方面,如果要使用整数索引,则可以使用数组代替
let A = [9, 3, 9, 3, 9, 7, 9];
var pairs = [];
for (var i = 0; i < A.length; ++i) {
var value = A[i];
if (pairs[value]) {
delete pairs[value];
} else {
pairs[value] = true;
}
}
console.log(A, pairs.reduce((acc, v, i) => {
if (v) acc.push(i);
return acc;
}, []));