我的数组像callsData [],其中包含如下对象:
{
"caller_id": "110",
"Channel": "SIP/Kam-SBC-0000001c",
"AccountCode": "1004",
"Server": "192.168.1.36",
"Callee": "109",
"connected_line": "109",
"Uniqueid": "145712272845",
"DestChannel": "SIP/Kam-SBC-0000001d",
"DestUniqueid": ["3432423423423","123123123","312321312"]
}
我想找到对象的索引,其中我的值3432423423423存在于DestUniqueid数组中。
答案 0 :(得分:1)
尝试编写一个简单的for loop
,
for(var i=0;i<callsData.length;i++){
if(callsData[i].DestUniqueid.indexOf("3432423423423") > -1)
break;
}
console.log(i + " is the index of element with value 3432423423423");
如果你想把它作为一个函数,那就写一下,
function getIndex(val){
for(var i=0;i<callsData.length;i++){
if(callsData[i].DestUniqueid.indexOf(val) > -1)
break;
}
return i;
}
console.log(getIndex("3432423423423") + " is the index of element with value 3432423423423");
答案 1 :(得分:0)
循环遍历主数组,并在每次迭代时,检查DestUniqueid属性以查看它是否包含您寻找的值:
function findIndex(valToFind){
for(var i = 0; i < callsData.length; ++i){
if(callsData[i].DestUniqueid.indexOf(valToFind) >= 0) {
return i;
}
}
}
答案 2 :(得分:0)
这是一个在线性时间内完成此功能的简单功能。
阵列有多大?它以任何方式排序吗?
function findIndex (array, target) {
for (var i = 0; i < array.length; i++){
if (array[i].DestUniqueid) === target){
return i;
}
return null;
}
}
答案 3 :(得分:0)
使用Array#find
功能:
var index;
callsData.find(function(el, i) {
if (el.DestUniqueid.indexOf('3432423423423') != -1) {
index = i;
return true;
}
})
console.log(index); // index that you need
您还可以使用Array#filter
函数获取所需的DestUniqueid
所有元素:
var arr = callsData.filter(function(el){
return el.DestUniqueid.indexOf('3432423423423') != -1;
});
console.log(arr); // array of callsData with your DestUniqueid
答案 4 :(得分:0)
var x = {
"caller_id": "110",
"Channel": "SIP/Kam-SBC-0000001c",
"AccountCode": "1004",
"Server": "192.168.1.36",
"Callee": "109",
"connected_line": "109",
"Uniqueid": "145712272845",
"DestChannel": "SIP/Kam-SBC-0000001d",
"DestUniqueid": ["3432423423423","123123123","312321312"]
}
x.DestUniqueid.indexOf("3432423423423")
> 0
x.DestUniqueid.indexOf("312321312")
> 2
所以你可以在函数中调用index of
var findIndex = function(obj, myVar){
return obj.DestUniqueid.indexOf(myVar)
}
并称之为:
findIndex(x, "312321312")
>2