我正在尝试通过以下方式(仅作为示例)检查TypeScript中是否存在数组索引:
var someArray = [];
// Fill the array with data
if ("index" in someArray) {
// Do something
}
然而,我遇到了以下编译错误:
in运算符要求左操作数为Any类型或String原始类型,右操作数为Any类型或对象类型
有人知道为什么吗?据我所知,我尝试的操作是JS完全合法的。
谢谢。
我正在尝试通过以下方式(仅作为示例)检查TypeScript中是否存在数组索引:
var someArray = [];
// Fill the array with data
if ("index" in someArray) {
// Do something
}
然而,我遇到了以下编译错误:
in运算符要求左操作数为Any类型或String原始类型,右操作数为Any类型或对象类型
有人知道为什么吗?据我所知,我尝试的操作是JS完全合法的。
谢谢。
var someObject = {"someKey":"Some value in object"};
if ("someKey" in someObject) {
//do stuff with someObject["someKey"]
}
var someArray = ["Some entry in array"];
if (someArray.indexOf("Some entry in array") > -1) {
//do stuff with array
}
Object.prototype.hasOwnProperty.call(a, 'index')
。这里有一个简洁的解释 链接。 - Rodrigo García一行代码验证。最简单的方法。
if(!!currentData[index]){
// do something
}
输出
var testArray = ["a","b","c"]
testArray[5]; //output => undefined
testArray[1]; //output => "b"
!!testArray[5]; //output => false
!!testArray[1]; //output => true
var someArray = [];
if( someArray.findIndex(x => x === "index") >= 0) {
// foud someArray element equals to "index"
}