gpt4 book ai didi

javascript - 更高级的 JavaScript 键/值对?

转载 作者:行者123 更新时间:2023-11-29 19:12:34 25 4
gpt4 key购买 nike

很抱歉,如果这只是常识,但我正在考虑一种比从数组中获取对象更高级的方法

for(var i = 0; i < array.length; i++)
{
if(i.id == idfromfunction)
{
dostuff();
}
}

所以我想的是改为做这样的事情

keyValuePairs = {};
function add(data,Id)
{
keyValuePairs[Id] = data
}

function remove(Id)
{
delete keyValuePairs[Id];
}

然后可以简单地检索数据

keyValuePairs[Id]

并使用(或使用来自此答案的更新版本 How to get all properties values of a Javascript Object (without knowing the keys)? )遍历数据

for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var val = obj[key];
// use val
}
}

function doLoop(callback)
{
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var val = obj[key];
callback(val, key);
}
}
}

然后使用

doLoop(function(val, key){
dostuff(val);
or
if(key == idfromfunction)
{
dostuff(val);
}
});

现在我不确定这是否真的是我应该一直做的,或者这是否是常识,但老实说我最近才发现删除关键字

所以我想问题是,这是进行键/值配对的有效方法(作为一种几乎类型的数组)吗?

为什么人们在制作 3rd 方插件时不直接使用它而不使用数组,或者为什么我以前没见过它? (是不是慢很多?分机)

我现在有点忙,但前提是没有人向我提及这已经被大量记录(或者我的想法是错误的),我会做一些实验然后回发。

最佳答案

I'm sorry if this is just common knowledge but I was thinking of a more advanced way of getting an object from an array then

for(var i = 0; i < array.length; i++)
{
if(i.id == idfromfunction)
{
dostuff();
}
}

没错,还有更“高级”的方式。是Array.prototype.find

var item = array.find(function(x) { return x.id === idFromFunction });

if (item === undefined)
doSomething();
else
doStuff(item);

Array.prototype.find 将遍历一个数组,每个项目调用一次提供的过程。如果该过程返回 true,则返回该项目并终止迭代。如果过程永远不会返回 true, 结果值将是 undefined

根据您的最后一段代码,您似乎已经顺利地自行发现/实现了此功能。干得好。

关于javascript - 更高级的 JavaScript 键/值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37692755/

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