我试图在一个查询中选择数据到pl/sql关联数组.我知道我可以使用硬编码密钥执行此操作,但我想看看是否有某种方法可以引用另一列(键列).
DECLARE
TYPE VarAssoc IS TABLE OF varchar2(2) INDEX BY varchar2(3);
vars VarAssoc;
BEGIN
SELECT foo, bar INTO vars(foo) FROM schema.table;
END;
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,说当我这样做时必须声明foo.有没有办法在单个查询中创建我的关联数组,还是需要回退到FOR循环?
我有一个由表列的行类型创建的关联数组.
举个例子,它就是这样的(表名不同,但结构是一样的):
这是表的DDL
CREATE TABLE employees
(
id NUMBER,
name VARCHAR2(240),
salary NUMBER
);
Run Code Online (Sandbox Code Playgroud)
这是我的程序正在做的事情:
DECLARE
TYPE table_of_emp
IS TABLE OF employees%ROWTYPE INDEX BY BINARY_INTEGER;
emp TABLE_OF_EMP;
BEGIN
IF emp IS NULL THEN
dbms_output.Put_line('Null associative array');
ELSE
dbms_output.Put_line('Not null');
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
我认为这应该导致打印"Null associative array".但是,if条件失败并且执行跳转到else部分.
现在,如果我放入一个for循环来打印集合值
DECLARE
TYPE table_of_emp
IS TABLE OF employees%ROWTYPE INDEX BY BINARY_INTEGER;
emp TABLE_OF_EMP;
BEGIN
IF emp IS NULL THEN
dbms_output.Put_line('Null associative array');
ELSE
dbms_output.Put_line('Not null');
FOR i IN emp.first..emp.last …Run Code Online (Sandbox Code Playgroud) 这是我迄今为止和鞋的类型是boots, wellingtons, leather, trainers (in that order)
我想迭代并分配值,所以我有类似的东西
var shoeArray = { boots : '3', wellingtons: '0', leather : '1', trainers: '3'};
Run Code Online (Sandbox Code Playgroud)
目前我只是得到一个{3,0,1,3}我可以使用的数组,但它不是很有帮助.
function shoe_types() {
var shoeArray = [];
$('[type=number]').each(function(){
$('span[data-field='+$(this).attr('id')+']').text($(this).val());
shoeArray.push ( parseInt($(this).val()) );
});
return shoeArray;
}
Run Code Online (Sandbox Code Playgroud) 如何在JS中执行以下操作?我想模仿.pop()一个对象而不是一个数组.
var deck = {
'cardK' :'13',
'cardQ' :'12',
'cardAJ':'11'
};
var val = deck.pop();
console.log("Key" + val.key );
console.log("Value" + val.val );
Run Code Online (Sandbox Code Playgroud)
看来这是不可能的.
我想创建一个函数createAssociativeArray,它将返回两个参数:string和object,像这样:
function createAssociativeArray(string, object) {
//...
}
Run Code Online (Sandbox Code Playgroud)
最后一项string应该获取object数据.查看使用/返回示例:
createAssociativeArray('key1.key2.key3', {
data1: 1,
data2: 2,
data3: 3
});
// key1: {
// key2: {
// key3: {
// data1: 1,
// data2: 2,
// data3: 3
// }
// }
// }
Run Code Online (Sandbox Code Playgroud)
什么是最简单,最健壮的方法?
使用eval不是可能的.
我尝试了什么:
function createAssociativeArray(string, object) {
string = string.split('.');
return string.reduce(function(_object, _target, i) {
_object[_target] = (i + 1 === string.length ? object : {});
return …Run Code Online (Sandbox Code Playgroud) 所以我正在尝试创建一个基于多维数组生成SQL查询字符串的函数.
例:
function createQueryString($arrayToSelect, $table, $conditionalArray) {
$queryStr = "SELECT ".implode(", ", $arrayToSelect)." FROM ".$table." WHERE ";
$queryStr = $queryStr.implode(" AND ",$conditionalArray); /*NEED HELP HERE*/
return $queryStr;
}
$columnsToSelect = array('ID','username');
$table = 'table';
$conditions = array('lastname'=>'doe','zipcode'=>'12345');
echo createQueryString($columnsToSelect, $table, $conditions); /*will result in incorrect SQL syntax*/
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我需要第3行的帮助,因为它正在打印
SELECT ID,用户名FROM表WHERE姓氏和邮政编码
但它应该是打印
SELECT ID,用户名FROM表WHERE lastname ='doe'和zipcode ='12345'
例如,我有以下代码:
localStorage["screenshots"] = new Array();
localStorage["screenshots"]["a"] = 9;
alert(localStorage["screenshots"]["a"]);
Arr = new Array();
Arr["screenshots"] = new Array();
Arr["screenshots"]["a"] = 9;
alert(Arr["screenshots"]["a"]);
Run Code Online (Sandbox Code Playgroud)
(我在Windows Vista 32位上使用谷歌浏览器v9.0.597.107)
但只有第二部分有效(alert()的输出是"a")!第一个警报输出对比"未定义"!
问题是什么?
谢谢.
我在JavaScript中有以下关联数组结构
Array (
[-1] => Array (
catId : -1
[subCatId] => Array (
subCatId : -3
[0] => Array (
property : value
)
[1] => Array (
property : value
)
)
)
[-4] => Array (
catId : -4
[subCatId] => Array (
subCatId : -6
[0] => Array (
property : value
)
[1] => Array (
property : value
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
我想将其转换为数字数组,就像这样
Array(
[0] => Array(
catID : -1
[subCatId] => Array ( …Run Code Online (Sandbox Code Playgroud) 我从服务器获得JSON响应,我必须在javascript中循环遍历数组并获取值.但我似乎无法循环.
数组的JSON响应如下所示:
{
"1": "Schools",
"20": "Profiles",
"31": "Statistics",
"44": "Messages",
"50": "Contacts"
}
Run Code Online (Sandbox Code Playgroud)
我只想循环遍历它以获取ID和Name并在页面上填充一些值.
我试过了:
$.each(response, function(key, value) {
alert(key + ' ' + value);
});
// and
for (var key in response) {
alert(key + ' ' + response[key]);
}
Run Code Online (Sandbox Code Playgroud)
但是没有给出正确的价值观.
在此先感谢您的帮助.
回复:嗨,我在第二个循环中得到的响应是:
0 {
1 "
2 1
3 "
4 :
5 "
6 S
Run Code Online (Sandbox Code Playgroud)
等等
这意味着它将整个响应作为字符串进行处理,并将其作为键/值进行拆分.
谢谢
我有这两个 associative arrays
//针阵列
$a = array(
"who" => "you",
"what" => "thing",
"where" => "place",
"when" => "hour"
);
Run Code Online (Sandbox Code Playgroud)
// haystack数组
$b = array(
"when" => "time",
"where" => "place",
"who" => "you",
"what" => "thing"
);
Run Code Online (Sandbox Code Playgroud)
我想,以检查是否$a有与之相匹配的b与它的准确key和value
并且如果每个键和值$a都具有精确匹配$b....我想将变量的值增加$c1,依此类推......
正如我们从上面看到的那样,有3种可能的匹配...并且据说可以将值增加$c3
$c = "3";
我希望有些天才可以帮助我......