如果我console.log(position)
它显示我未定义。
如何通过获取值来解决它。在这里,我想将节点作为控制台中的trie。输出没问题,但如果我var nodes = ["maria","mary","marks"];
function insert_word(split_nodes) {
var rest = [];
for ( var i = 0; i<split_nodes.length; i++ ) {
//console.log(current);
var word = split_nodes[i];
var letters = word.split("");
var current = rest;
//console.log(current);
for ( var j = 0; j < letters.length; j++ ) {
var character = letters[j];
// console.log(chaaracter);
var position = current[ character ];
console.log(position);
if ( position == null ) {
current = current[ character ] = j == letters.length - 1 ? 0 : {};
// console.log(current);
} else {
current = current[ character ];
// console.log(current);
}
}
}
}
insert_word(nodes);
它显示未定义。
任何人都可以帮助我吗?
var items;
$('#dropDownId').change(function() {
items = $("#dropDownId option[value='0']").detach();
amClose();
});
function amClose() {
$(".am_dd_text p i").click(function() {
$("#dropDownId").append(items );
});
}
这是我的输出。
答案 0 :(得分:0)
如果我是正确的,你需要的就是在数组中找到元素的索引。 这就是你如何做到的。
case APP_TCPIP_WAIT_FOR_RESPONSE:
{
char Appbuffer[80];
static const char ACK[]="START";
static const char AOK[]="STOP";
memset(Appbuffer, 0, sizeof(Appbuffer));
if (!TCPIP_TCP_IsConnected(appData.clientSocket))
{
SYS_CONSOLE_MESSAGE("\r\nConnection Closed\r\n");
appData.clientState = APP_TCPIP_WAITING_FOR_COMMAND;
break;
}
if (TCPIP_TCP_GetIsReady(appData.clientSocket))
{
TCPIP_TCP_ArrayGet(appData.clientSocket, (uint8_t*)Appbuffer, sizeof(Appbuffer) - 1);
SYS_CONSOLE_PRINT("%s", Appbuffer);
if(!strcmp(Appbuffer, ACK)) //// breakpoint
{
BSP_LEDStateSet(BSP_LED_1,BSP_LED_STATE_ON);
BSP_LEDStateSet(BSP_LED_2,BSP_LED_STATE_ON);
BSP_LEDStateSet(BSP_LED_3,BSP_LED_STATE_ON);
}
else if(!strcmp(Appbuffer, AOK)) // breakpoint
{
BSP_LEDStateSet(BSP_LED_1,BSP_LED_STATE_OFF);
appData.serverState = APP_TCPIP_CLOSING_CONNECTION;
SYS_CONSOLE_MESSAGE("Connection was closed\r\n");
}
}
}
答案 1 :(得分:0)
我真的不明白你要用这段代码实现什么,因为它没有用,但我可以告诉你为什么要打印undefined
:
在var current = rest;
您基本上是在呼叫var current = []
,之后当您致电var position = current[ character ];
时,您正试图接收current
变量中不存在的索引,因为您的current
等于空数组。
编辑02:
@ zeropublix我必须实现这一目标。如果它的废话比废话,但我必须这样做。它就像特里结构。你可以帮我解决一下代码吗
您的任务解决方案:
var nodes = ["maria","mary","marks"];
function nodesToTree(nodes) {
var tree = {};
for (var i = 0; i < nodes.length; i++) {
var word = nodes[i];
var letters = word.split("");
var current = tree;
for (var j = 0; j < letters.length; j++) {
var char = letters[j];
if (Object.keys(current).length <= 0) {
current[char] = {};
} else if (!Object.keys(current).includes(char)) {
current[char] = {};
}
if (j+1 == letters.length) {
current[char] = 0;
}
current = current[char];
}
}
return tree;
}
console.log(
nodesToTree(nodes)
);