botsay 标识单词

2018-05-13  本文已影响0人  zhangjingbibibi

这段时间在做一个function 将单词放入场景中记忆

markWord
            var markWordFn = function(userArray, markArray) {
                var arr1 = userArray; //用户说的话
                var arr2 = markArray; //bot返回的单词
                var temp = []; //临时数组1 
                var temparray = []; //临时数组2    重复的
                var tempArrayIndex = []; //重复数  下标
                for(var i = 0; i < arr2.length; i++) {
                    temp[arr2[i]] = true; //巧妙地方:把数组B的值当成临时数组1的键并赋值为真 
                };
                for(var i = 0; i < arr1.length; i++) {
                    if(temp[arr1[i]]) {
                        temparray.push(arr1[i]); //巧妙地方:同时把数组A的值当成临时数组1的键并判断是否为真,如果不为真说明没重复,就合并到一个新数组里,这样就可以得到一个全新并无重复的数组
                        tempArrayIndex.push(i);
                    };
                };
                var str = "";
                var index = 0;
                for(var i = 0; i < arr1.length; i++) {
                    if(i == tempArrayIndex[index]) {
                        str += "<span class=fontColor>" + arr1[i] + "</span>" + " ";
                        index++;
                    } else {
                        str += arr1[i] + " ";
                    }
                }
                return str;
            }
            var a="I want to book a room";
            var arr1=a.split(" ");
//          json
            var wordArray = ["weather","hotel","book"];
            var result;
            console.log(wordArray);
            result=markWordFn(arr1,wordArray);
            console.log(result);
            document.getElementById("fontArea").innerHTML=result;
上一篇 下一篇

猜你喜欢

热点阅读