gpt4 book ai didi

JavaScript:如何获取以特定字符串开头的对象的所有键和值?

转载 作者:可可西里 更新时间:2023-11-01 01:38:06 25 4
gpt4 key购买 nike

我正在尝试获取以 imageIds 开头的对象的所有键和值。

我的对象如下所示:

{
title: 'fsdfsd',
titleZh: 'fsdfsd',
body: 'fsdf',
bodyZh: 'sdfsdf',
imageIds: '/uploads/tmp/image-3.png',
imageIdsZh: ''
}

但我只需要属性 imageIdsimageIdsZh。但是明天,一个对象可能包含 imageIdsBlah,我也需要将其拾取。我可以从对象中删除前几个属性,但下一个对象可能包含其他属性,例如 foo: 'bar'

最佳答案

一些功能性的风格:

var data = {
title: 'fsdfsd',
titleZh: 'fsdfsd',
body: 'fsdf',
bodyZh: 'sdfsdf',
imageIds: '/uploads/tmp/image-3.png',
imageIdsZh: ''
};

var z = Object.keys(data).filter(function(k) {
return k.indexOf('imageIds') == 0;
}).reduce(function(newData, k) {
newData[k] = data[k];
return newData;
}, {});

console.log(z);

演示:http://jsfiddle.net/ngX4m/

一些小的解释:

  1. 我们使用Array.prototype.filter()函数过滤掉以`imageIds2开头的键
  2. 我们使用 Array.prototype.reduce() 将过滤键数组转换为 key-value 对对象。为此,我们使用 {} 的初始值(空对象)填充它并从每个执行步骤返回。

更新:

来自 @GitaarLAB 的公平更新:

Object.keys is ES5, but returns an objects own properties (so no need for obj.hasOwnProperty(key))

关于JavaScript:如何获取以特定字符串开头的对象的所有键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20485270/

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