javascript - 是否可以在 JavaScript 中功能性地遍历对象?

标签 javascript functional-programming object

我认为 JavaScript 没有像 obj.first 这样的东西,但我想知道是否可以通过任何方式实现这样的事情:

var foobar = { aint: "foo", an: "bar", array: "foobar" };
var recursiveObjDump = function (obj, idx) {
    if (idx == obj.last.index) return obj[idx];
    else return obj[idx] + " " + recursiveObjDump(obj, obj[idx].next.index);
};

alert( recursiveObjDump(foobar, foobar.first.index) );

谢谢。

最佳答案

不是真的。 JavaScript 中的对象是关联数组——键/值对的集合。没有指定的顺序,就像 mathematical set 中一样。 (与 sequence 相比)。因此,寻找像 object.first 这样的东西是没有意义的。

另一方面,您绝对可以在此基础上强加自己的结构。例如,您可以在 Javascript 中实现 Lisp 风格的列表,并重复这些列表。 This is a pretty neat article在 Javascript 中使用函数式编程技术。

最后,Javascript 是面向对象的,而不是函数式的,所以你不会找到那些原生实现的函数式基元。

编辑:如果您仍然想在 Javascript 中使用函数式编程技术,请查看 Functional Javascript .

关于javascript - 是否可以在 JavaScript 中功能性地遍历对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1954457/

相关文章:

javascript - 返回用户生成的文件、AJAX 或表单的最佳方式?

javascript - Angular6 map 不存在

javascript - Angular.js 只监视特定的对象属性

javascript - HummusJS - 在 JavaScript 中将 HTML 页面转换为 PDF

javascript:将二进制字符串转换为 UInt32 大端字节序而不使用按位运算

javascript - 实现芯片初始化

javascript - Vue.js 将对象添加到现有数组

f# - 有人有 --standalone 选项可以在 F# CTP 中工作吗?

scala - 使用 Either 处理 Scala 代码中的故障

python - 优雅地按顺序应用Python函数列表