gpt4 book ai didi

Javascript 数组包含键是字符串或字符串数​​组的位置

转载 作者:行者123 更新时间:2023-11-30 10:08:54 25 4
gpt4 key购买 nike

我有一个数组,如下所示:

var data = [{
key: ['blue-berries', 'strawberries'],
title: 'Berries',
}, {
key: 'chicken',
title: 'Chicken',
}, {
key: 'beef',
title: 'Beef',
}, {
key: 'something-else',
title: 'Something Else',
}]

假设我的“查询”类似于'/strawberries-with-some-other-stuff'

我们应该返回示例数组中的第一项。

'/beef-with-some-other-whatever'将返回第 3 个(依此类推)

如你所见,一些key属性是数组,其他的只是静态字符串

以下似乎有效,使用 lodash _.find

var input = '/strawberries-with-some-other-stuff';

var result = _.find(data, function(d) {

if (d.key instanceof Array) {
return _.forEach(d.key, function(key) {
if (input.indexOf(key + '-') == 0) {
console.log('key- ', key + '-')
return d
} else return null;
});
} else {
if (input.indexOf(d.key + '-') == 0) {
return d
}
}
});

但是,这是一个误报,就好像我将 input 更改为 '/beef-with-some-other-whatever' 它仍然返回数组

我想我在滥用 _.find 不知何故......有没有更好的办法?

最佳答案

var input = '/strawberries-with-some-other-stuff';

var result = _.find(data, function (el) {
if (Array.isArray(el.key)) {
return _.find(el.key, function (k) {
return input.indexOf(k + '-') >= 0; // or return input.indexOf(k + '-') == 0; - need replace first symbol '/'
});
}

return input.indexOf(el.key + '-') >= 0; // or return input.indexOf(el.key + '-') == 0; - need replace first symbol '/'
});

演示:http://jsbin.com/kucec/3/edit?js,console

关于Javascript 数组包含键是字符串或字符串数​​组的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620357/

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