我怎樣才能得到下圖中的名字?
return testData.then((data) => {
console.log(data)
var results = [];
var toSearch = params.suggestTerm;
data = data["data"]["0"];
console.log("data: ", data["0"])
for(var i=0; i<data.length; i ) {
if(data[i]["name"].indexOf(toSearch)!=-1) {
results.push(data[i]);
}
}
console.log(data) 的結果

uj5u.com熱心網友回復:
不需要這樣做:data = data["data"]["0"];。如果您這樣做,您將資料分配為嵌套串列中的第一個物件。它不再是一個陣列。
只需獲取另一個串列variable并訪問它:
let list = data.data;
for(var i=0; i<list.length; i ) {
if(list[i]["name"].indexOf(toSearch) !== -1) {
results.push(list[i]);
}
}
該indexOf()搜索將是區分大小寫。如果這不是你想要的,你可以小寫和搜索。
uj5u.com熱心網友回復:
看來您正在尋找一個只包含字串中具有name值的專案的陣列toSearch。如果是這種情況,您可以使用Array.filter()類似于:
return testData.then((data) => {
console.log(data)
var results = [];
var toSearch = params.suggestTerm;
if (data && data.data && data.data.length > 0){
results = data.data.filter(item =>
item.name.toLowerCase().indexOf(toSearch.toLowerCase()) > -1
)
return results;
}
此示例搜索不區分大小寫。如果您希望進行區分大小寫的搜索,請洗掉.toLowerCase()
參見Array.filter()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/388583.html
標籤:javascript 反应
上一篇:如何以2為限制反轉完整檔案?
