gpt4 book ai didi

javascript,我可以在单个声明/行中执行此操作吗?

转载 作者:行者123 更新时间:2023-11-30 07:17:31 25 4
gpt4 key购买 nike

有时我需要一个更复杂的 JavaScript 对象,我通常会这样做。

var myVar = ArrayWithMetaData(GetStringArray(),{description: "These are numbers", ...});

function ArrayWithMetaData(arr, params){
var temp = params;
for(var i = 0; i < arr.length; i++)
temp[i] = arr[i];
return temp;
}

//TODO: Returns an array i.e. ["one", "two", "three"], may be very large
function GetStringArray() {}

是否有更短的方法来完成此操作,或者是否有提供类似功能的库?

还有,这种javascript变量有名字吗?

最佳答案

好吧,你可以这样做:

var myVar = ["one", "two", "three"];
myVar.description = "These are numbers";

Array 实例就像其他任何对象一样是对象(事实上,在 JavaScript 中,根本就是 arrays aren't really arrays),您可以直接向它们添加任意属性。如果你这样做(并且有很多用例),请确保你没有错误地使用 for..in(参见:Myths and realities of for..in)。

不过,上面的内容与你的函数的结果并不完全相似,因为你的函数的结果不再是 Array,而上面的内容将数组保留为真正的 Array (这样你就可以做所有只与数字属性相关的事情——“索引”——如果你愿意的话)。如果你真的不希望它是一个 Array,你可以这样做:

var myVar = {
0: "one",
1: "two",
2: "three",
description: "These are numbers"
};

那是一个 object initializer (有时称为对象字面量)。

关于javascript,我可以在单个声明/行中执行此操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403595/

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