gpt4 book ai didi

javascript - 有没有一种简单的方法可以获取一行 JS 代码的建议?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:09:02 25 4
gpt4 key购买 nike

如果我有一串有效 JS 代码,例如"'foobar'.charCodeAt(0)",我可以评估它——这显然很简单。
JS代码中的eval()(或new Function())或node -e(或d8 -e ) 从 CLI 解决了这个任务。

但我需要为 不完整 行 JS 代码获取潜在建议。
例如,如果我有一个字符串 "'foobar'.cha" 我想要类似数组的东西 ['charAt', 'charCodeAt, 'matchAll'](或 ["'foobar'.charAt", "'foobar'.charCodeAt", "'foobar'.matchAll"])。

是否有可靠且开箱即用的解决方案?这对我来说没什么大不了的,我不想花太多时间在这上面。

谢谢。

最佳答案

它可能比这更复杂,但是一旦您能够正确解析代码,您就可以通过执行以下操作来获取原型(prototype)函数数组:Object.getOwnPropertyNames(String.prototype) - 或者您需要的任何原型(prototype),在此示例中仅使用 String

function getFuncs(type) {
if (type === 'string') {
var funcs = Object.getOwnPropertyNames(String.prototype).reduce((accum, el) => {
accum.push(el);
return accum;
}, []);
//console.log(funcs);
return funcs;
}
console.log(`${type} not implemented yet..`);
return;
}

var divEl = document.querySelector('#divEl');
document.querySelector('#inputEl').addEventListener('keyup', e => {
divEl.innerHTML = '<ul>';
var funcs = getFuncs(typeof e.target.value);
var filtered = funcs.filter(fnName => {
return fnName.toLowerCase().indexOf(e.target.value.toLowerCase()) > -1;
});
if (e.target.value.trim() != '') {
filtered.forEach(fnName => divEl.innerHTML += `<li>${fnName}</li>`);
}

divEl.innerHTML += '</ul>';
});
"foobar.<input id="inputEl" type="text" />"
<br />
<div id="divEl"></div>

关于javascript - 有没有一种简单的方法可以获取一行 JS 代码的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com