Arrays 如何在一个巨大的数组中搜索特定的单词?
在AS3中: 我有一个数组中的长文本Arrays 如何在一个巨大的数组中搜索特定的单词?,arrays,actionscript-3,Arrays,Actionscript 3,在AS3中: 我有一个数组中的长文本 var myHugeArray:Array = ["I love Apple I have an Iphone I eat a Banana I'm John I sell a computer I sell an Apple I love rock I sell a car"]; 如何搜索特定的单词?(比如:给我看带有“苹果”字样的句子)-->输出:“我爱苹果”和“我卖苹果” 谢谢 编辑 以下是我到目前为止所做的: loader5.load(urlReq
var myHugeArray:Array = ["I love Apple
I have an Iphone
I eat a Banana
I'm John
I sell a computer
I sell an Apple
I love rock
I sell a car"];
如何搜索特定的单词?(比如:给我看带有“苹果”字样的句子)-->输出:“我爱苹果”和“我卖苹果”
谢谢
编辑
以下是我到目前为止所做的:
loader5.load(urlReq);
loader5.addEventListener(Event.COMPLETE,completeHandler2);
function completeHandler2(event:Event):void{
loader5.removeEventListener(Event.COMPLETE,completeHandler2);
trace("Données envoyées");
feedbackText.text = "Données envoyées";
loader5.load(urlReq);
loader5.addEventListener(Event.COMPLETE, complete);
}
function complete(e:Event):void {
addChild(list);
products = JSON.parse(loader5.data) as Array;
feedbackText.text = "complete";
for(var i:int = 0; i < products.length; i++){
createListItem(i, products[i]);
}
showList();
}
function createListItem(index:int, item:Object):void {
var listItem:TextField = new TextField();
listItem.text = item.title;
listItem.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
showDetails(item);
});
list.addChild(listItem);
str = item.title;
bar();
}
function bar(){
var arr: Array ;
searchBar.type = TextFieldType.INPUT;
var suggested:Array = new Array();
var textfields:Array = new Array();
searchBar.addEventListener(Event.CHANGE, suggest);
arr = str.split(",");
trace(arr);
function suggest(e:Event):void
{
suggested = [];
for (var i:int = 0; i < textfields.length; i++)
{
removeChild(textfields[i]);
}
textfields = [];
for (var j:int = 0; j < arr.length; j++)
{
if (arr[j].indexOf(searchBar.text.toLowerCase()) != -1)
{
var term:TextField = new TextField();
term.width = 360;
term.height = 24;
term.x = 18;
term.y = (24 * suggested.length) + 135;
term.border = true;
term.borderColor = 0x353535;
term.background = true;
term.backgroundColor = 0xFF9900;
term.textColor = 0x4C311D;
term.defaultTextFormat = format;
addChild(term);
suggested.push(arr[j]);
term.text = arr[j];
}
}
function showList():void {
list.visible = true;
}
function showDetails(item:Object):void {
titleTxt.htmlText = item.title;
detailsTxt.htmlText = "<U>prix:</U> " + item.prix + " xpf"+ "\n\n<U>Description:</U> " + "\n"+item.theDescription + "\n"+"\n\n<U>Contact:</U> " + item.mail+ "\n"+item.phone;
}
loader5.load(urlReq);
loader5.addEventListener(事件.COMPLETE,completeHandler2);
函数completeHandler2(事件:事件):无效{
loader5.removeEventListener(事件.COMPLETE,completeHandler2);
trace(“Données emissionées”);
feedbackText.text=“Données emissionées”;
loader5.load(urlReq);
loader5.addEventListener(Event.COMPLETE,COMPLETE);
}
功能完成(e:事件):无效{
addChild(列表);
products=JSON.parse(loader5.data)作为数组;
feedbackText.text=“完成”;
对于(变量i:int=0;i
因此,我的AS3代码使用loader5
搜索PHP变量
php找到的所有项目都放在一个数组中(products
)。
并创建所有产品的列表。(createListItem
)
如果我单击某个项目,它会显示一些详细信息(价格、说明等)。这是函数showDetails();
知道我已经创建了一个搜索栏(自动完成)。
将创建一个数组(arr
),用于拆分字符串(str
)
然后,它执行它在数组中搜索的操作
问题:
1/奇怪的是,并不是所有的单词都显示在我的搜索栏中。有些单词有效,而另一些则无效。
2/当用户单击建议的term
时,如何调用函数showDetails()
?(term.addEventListener(MouseEvent.click,showDetails));不起作用,因为terms
不是项。title
showDetails显示项的详细信息。title
。(那么我怎么说术语
=项.标题
?)
3/你看到比这更简单的方法了吗?你的
myhugarray
只是字符串,所以split()
使用\n'
你就得到了
例如,ret array,然后在每个字符串中使用
indexof()
查找包含您搜索的单词的字符串,如“apple”您需要将字符串拆分为一个数组,然后搜索每个项目
看看这个
我在谷歌上找不到关于这个的任何东西。我只是找到一些代码来查找这个词,但是没有找到完整的句子。在这里,我已经编辑了我的文章。代码有点丑,这就是为什么我要求一个方法之前不显示我的代码。考虑通过一个例子让你的答案更有用。