检查 localStorage 中的值是否以字符串和 console.log() 值名称开头

问题描述 投票:0回答:5

我有一个问题可能很难解释...但我会尽力解释。 所以,我在 localStorage 中有 3 个值,但我不知道它们的名字。假设有 a、b 和 c。 A值等于“早上好”,B值等于“下午好”,C值等于“糟糕的夜晚”。如果A值、B值或C值startsWith()“好”,我想要console.log()。所以我真的不知道该怎么做...... 有人可以帮助我吗?谢谢。 演示。

javascript local-storage
5个回答
3
投票

您可以迭代本地存储并检查它们的值

for (var i = 0, i < localStorage.length; i++) {
   var value = localStorage.getItem(localStorage.key(i));
   if (value && value.startsWith('Good') console.log('found it!', key, value);
}

或更简单地说:

var valuesWithGood = Object.keys(localStorage).filter(x => localStorage.getItem(x).startsWith('Good')))

0
投票

https://www.w3schools.com/jsref/jsref_startswith.asp

javascript中有startswith函数,试试吧!


0
投票

您可以将字符串 'Good下午' 作为参数传递,它将迭代本地存储以检查它是否存在。

使用 Object.values() 方法,如果与传递给函数的字符串匹配,函数将返回 true

const findValue = (value) => Object.values(localStorage).indexOf(value) > -1;

console.log(findValue('Good afternoon')); // true

如果您需要它在 Internet Explorer 浏览器中工作,我们可以使用 Object.keys().some()

const findValue = (value) => Object.keys(localStorage).some(key => (localStorage[key] === value));

console.log(findValue('Good afternoon')); // true

仅供参考:Internet Explorer 不支持startWith()


0
投票
你可以做这样的事情:

Object.keys(localStorage).filter(function(x) { if( x === 'someValue_1' || x === 'someValue_2' || x.startsWith('otherValue_') ){ console.log(x); } });
    

0
投票
迭代本地存储中的项目并根据您的值测试每个项目。每次找到匹配项时都会打印该消息。

const someVar = "Good"; for (var i = 0; i < localStorage.length; i++) { let value = localStorage.getItem(localStorage.key(i)); if (value && value.startsWith(someVar) { console.log("Match Found! " + key + " " + value); } }
    
© www.soinside.com 2019 - 2024. All rights reserved.