gpt4 book ai didi

javascript - 如何在javascript中实现python的namedtuple

转载 作者:太空狗 更新时间:2023-10-29 21:50:46 25 4
gpt4 key购买 nike

我将如何在 javascript 中实现 python 的 namedtuple?理想情况下,我还想要一个可以“映射”一系列序列的函数,以将其转换为一系列类似 namedtuple 的对象。

// with underscore.js included...
var points = [[1,2], [3,4], [4,5]
var Point = namedlist('Point', 'x y')
points = _.map(Point._make, points)

point1 = points[0]
var x = point1.x
var y = point1.y

请注意,我不想每次都编写一个像“Point”这样的新类,而是想要一个工厂函数来生成一个支持使用给定字段名称访问列表项的新类。

旁注:这个问题的一个假设是 javascript 映射使用的内存比列表少。这个假设合理吗?

最佳答案

你可以只使用类似的东西

var namedlist = function(fields) {
return function(arr) {
var obj = { };

for(var i = 0; i < arr.length; i++) {
obj[fields[i]] = arr[i];
}

return obj;
};
};

//use:
var points = [[1,2], [3,4], [5,6]];
var Point = namedlist(['x', 'y']);

points = _.map(Point, points);

//Single item:
var pt = Point([1,2]);

至于内存使用,取决于底层JS引擎如何实现每个构造。我怀疑数组会比对象消耗更少的内存,但简单对象(如此处)和数组之间的差异可能不是很明显。

关于javascript - 如何在javascript中实现python的namedtuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291194/

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